从二维Javascript数组中删除项目

时间:2015-07-31 17:00:25

标签: javascript jquery arrays

我有一个像这样的简单数组:

  var CutRoadArray = [
            ['Location', '_Location'],
            ['Applicant Info', '_ApplicantInfo'],
            ['Details', '_ApplicationDetails'],
            ['Bond Info', '_BondInfo'],
            ['Attachments', '_Attachments'],
            ['Review', '_ReviewA']
        ];

我想检查这个数组是否包含条目

['Bond Info', '_BondInfo'],

如果确实如此,请将其删除。在一个单独的场景中,我想搜索相同的内容,如果它不存在,则将其添加到某个索引。

我尝试了各种各样的方法,但都没有效果。任何帮助将不胜感激。

我试图实现这一目标的方法之一是:

Array.prototype.remove = function () {
            var what, a = arguments, L = a.length, ax;
            while (L && this.length) {
                what = a[--L];
                while ((ax = this.indexOf(what)) !== -1) {
                    this.splice(ax, 1);
                }
            }
            return this;
        };


function indexOfRowContainingId(id, matrix) {
        var arr = matrix.filter(function (el) {
            return !!~el.indexOf(id);
        });
        return arr;
    }

然后调用类似的东西:

 var bond = indexOfRowContainingId('_BondInfo', CutRoadArray);
   if (bond.length > 0) {
                    var ar = CutRoadArray.remove("['Bond Info', '_BondInfo']");
               console.log(ar);
    }

2 个答案:

答案 0 :(得分:1)

试试这个:

var CutRoadArray = [
        ['Location', '_Location'],
        ['Applicant Info', '_ApplicantInfo'],
        ['Details', '_ApplicationDetails'],
        ['Bond Info', '_BondInfo'],
        ['Attachments', '_Attachments'],
        ['Review', '_ReviewA']
    ];
var testElem = ['Bond Info', '_BondInfo'];

for(var i=0; i<CutRoadArray.length; i++){
  var temp = CutRoadArray[i].toString();
  if(temp === testElem.toString()){ 
     //remove element from array
     CutRoadArray.splice(i, 1);
     break;

  }

}

console.log(CutRoadArray);

答案 1 :(得分:1)

此功能具有您所需的功能:

function testArray(test, array){
    return array.filter(function(x){
        return x.toString() != test;
    })
}

testArray(['Bond Info', '_BondInfo'], CutRoadArray)