2015-11-26 25 views
0

我有數組如下,我想先檢查數組中的記錄是否已經存在,然後推送相似的記錄。如果Item存在,從對象中刪除,然後再次推送

arr1 = [{ 
     'Name': 'Ken', 
     'Id' : 123, 
     'Units' : 100 
    }, { 
     'Name': 'Kris', 
     'Id': '223', 
     'Units' : 100 
    }, { 
     'Name': 'Ben', 
     'Id': '229', 
     'Units' : 100 
    }, 
    { 
     'Name': 'Alex', 
     'Id': '222', 
     'Units' : 100 
    }] 

現在假設我想添加一個類似的記載

{ 
     'Name': 'Ken', 
     'Id' : 123, 
     'Units' : 50 
} 

這裏只單位的價值已經改變,有時也可能保持不變。

我想要的是刪除最初的類似記錄(通過Id檢查)並推送新的。

所以我最後的陣列應該像

arr1 = [{ 
     'Name': 'Ken', 
     'Id' : 123, 
     'Units' : 100 
    }, { 
     'Name': 'Kris', 
     'Id': '223', 
     'Units' : 100 
    }, { 
     'Name': 'Ben', 
     'Id': '229', 
     'Units' : 100 
    }, 
    { 
     'Name': 'Alex', 
     'Id': '222', 
     'Units' : 100 
    }] 
+0

你有什麼嘗試這麼遠嗎? – Ziki

+0

新的:''單位':100'是嗎? –

+0

[在javascript對象數組中使用id查找對象]的可能重複(http://stackoverflow.com/questions/7364150/find-object-by-id-in-array-of-javascript-objects) – Abhitalks

回答

1

篩選出基於相關屬性的舊記錄並添加新的。

similarRecord = { 
    id = 123 
    ... 
} 

_arr1 = arr1.filter(function(obj){ 
    return obj.id != similarRecord.id 
}) 

_arr1.push(similarRecord) 
+0

此代碼有錯誤.. – CoderPi

+0

它也將刪除陣列中的所有元素 – CoderPi

+0

當然會。在咖啡的土地與自動返回。謝謝@CodeiSir。 – Neil

2
var newRecord = { 
    'Name': 'Ken', 
    'Id': 123, 
    'Units': 50 
}; 

arr1 = arr.filter(function (el) { 
    return el.Id != newRecord.Id; 
}); 

arr1.push(newRecord); 

演示:

arr1 = [{ 
 
    'Name': 'Ken', 
 
    'Id': 123, 
 
    'Units': 100 
 
}, { 
 
    'Name': 'Kris', 
 
    'Id': '223', 
 
    'Units': 100 
 
}, { 
 
    'Name': 'Ben', 
 
    'Id': '229', 
 
    'Units': 100 
 
}, { 
 
    'Name': 'Alex', 
 
    'Id': '222', 
 
    'Units': 100 
 
}] 
 

 
var newRecord = { 
 
    'Name': 'Ken', 
 
    'Id': 123, 
 
    'Units': 50 
 
}; 
 

 
arr1 = arr1.filter(function(el) { 
 
    return el.Id != newRecord.Id; 
 
}); 
 

 
arr1.push(newRecord); 
 

 
alert(JSON.stringify(arr1));

+0

該OP說:我想要的是刪除最初的類似記錄(由Id檢查),並推動新的。 – Ziki

+0

確定由'.Id'然後,謝謝 – CoderPi

相關問題