我已经定义了一个这样的数组:
var myArray = {myNewArray: ['string1' , 'string2' , 'string3']};
我想遍历数组并删除与特定字符串值匹配的元素。jQuery/javascript 中是否有一种干净的方法来实现这一点?
还是我需要遍历每个元素,检查它的值,如果它的值与比较的字符串匹配,获取它的 id,然后使用该 id 从数组中删除?
我已经定义了一个这样的数组:
var myArray = {myNewArray: ['string1' , 'string2' , 'string3']};
我想遍历数组并删除与特定字符串值匹配的元素。jQuery/javascript 中是否有一种干净的方法来实现这一点?
还是我需要遍历每个元素,检查它的值,如果它的值与比较的字符串匹配,获取它的 id,然后使用该 id 从数组中删除?
var strings = ['a', 'b', 'c', 'd'];
document.write('initial data: ' + strings);
var index = 0;
var badData = 'c';
for(index = 0; index < strings.length; index++)
{
if(strings[index] == badData)
{
strings.splice(index, 1);
}
}
document.write('<br>final data: '+ strings);
JavaScript 数组有一个indexOf
方法可以用来查找一个元素,然后splice
可以用来删除它。例如:
var myNewArray = ['A', 'B', 'C'];
var toBeRemoved = 'B';
var indexOfItemToRemove = myNewArray.indexOf(toBeRemoved);
if (indexOfItemToRemove >= 0) {
myNewArray.splice(indexOfItemToRemove, 1);
}
该代码执行后,myNewArray
是['A', 'C']
.
您可以使用Array.filter。
filteredArray = myArray.myNewArray.filter(function(el){
return el === "string";
});
您可以在Kangax 的兼容表中检查兼容性。
您可以使用过滤数组$.grep
var myArray = {myNewArray: ['string1' , 'string2' , 'string3']};
myArray = { myNewArray: $.grep(myArray.myNewArray,function(val){
return val !== "string1";
})};
//console.log(myArray);
my newARR = oldArr.splice( $.inArray( removeItem , oldArr ) , 'deleteThisString');