我有一個數組如何使用Javascript從數組中刪除數組?
var arr = [{"id":"1","name":"One"},{"id":"2","name":"Two"}]
我推到陣列
arr.push(X)
但我怎樣才能去除例如{ 「ID」: 「1」, 「姓名」: 「一」}來自此陣列名稱?
我有一個數組如何使用Javascript從數組中刪除數組?
var arr = [{"id":"1","name":"One"},{"id":"2","name":"Two"}]
我推到陣列
arr.push(X)
但我怎樣才能去除例如{ 「ID」: 「1」, 「姓名」: 「一」}來自此陣列名稱?
在普通的JavaScript,你必須通過數組搜索尋找每個對象的名稱匹配,然後刪除該對象:
function removeFromArrayByName(arr, name) {
for (var i = 0; i < arr.length; i++) {
if (arr[i].name === name) {
arr.splice(i, 1);
return;
}
}
}
或者,如果有可能不止一個匹配,並要刪除所有的比賽也有,你可以做到這一點(不向後遍歷並不會返回,當它找到一個匹配):
function removeFromArrayByName(arr, name) {
for (var i = arr.length - 1; i >= 0; i--) {
if (arr[i].name === name) {
arr.splice(i, 1);
}
}
}
或者,你甚至可以把它更通用的,你在屬性名傳遞也搜:
function removeFromArrayByName(arr, prop, val) {
for (var i = arr.length - 1; i >= 0; i--) {
if (arr[i][prop] === val) {
arr.splice(i, 1);
}
}
}
謝謝!!!像魅力一樣工作 –
的問題是,對於普通的js,但如果你使用jQuery的,你可以寫這樣的功能:
function removeByName(arr, key){
return $.grep(arr, function (n,i) {
return n.name != key;
});
}
在你的情況,我會打電話的[刪除對象removeByName(arr,'One');
可能重複數組按對象屬性](http://stackoverflow.com/questions/16491758/remove-objects-from-array-by-object-property) –