我有一个像这样的简单数组:
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);
}
答案 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)