我正试图弄清楚如何使用索引从serializedArray中删除项目。 以下情形:
[
{ 'name' : 'item1', 'value' : '1' },
{ 'name' : 'item2', 'value' : '2' },
{ 'name' : 'item3', 'value' : 3 }
]
现在我想删除'item2' - 我可以使用以下函数 - 但不知道如何删除它 - 是否有某种unset()方法或类似的东西:?
serializeRemove : function(thisArray, thisName) {
"use strict";
$.each(thisArray, function(index, item) {
if (item.name == thisName) {
// what to do here ?
}
});
}
答案 0 :(得分:3)
您可以delete
使用var array = [
{ 'name' : 'item1', 'value' : '1' },
{ 'name' : 'item2', 'value' : '2' },
{ 'name' : 'item3', 'value' : 3 }
];
var arrayClean = function(thisArray, thisName) {
"use strict";
$.each(thisArray, function(index, item) {
if (item.name == thisName) {
delete thisArray[index];
}
});
}
console.log(array);
arrayClean(array, 'item3');
console.log(array);
:a standard JavaScript operator
{{1}}
答案 1 :(得分:3)
您可以像这样使用vanilla JS'filter()
方法:
serializeRemove : function(thisArray, thisName) {
"use strict";
return thisArray.filter( function( item ) {
return item.name != thisName;
});
}
filter()
使用回调函数来测试数组的每个元素。如果函数返回true
,则元素将出现在结果中。如果它返回false
,则该元素将被删除。
filter()
。