我在這裏有兩種如何更新數組元素的方法。在javascript中更新數組元素,splice push vs獲取值?
var x = [{test: 'test', id: 1}, {test: 'test2', id: 2}, {test: 'test3', id: 3}];
SPLICE PUSH
for(var i in x) {
if(x[i].id === 2) {
x.splice(i, 1);
x.push({test: 'updated', id: 3});
break;
}
}
得到值
for(var i in x) {
if(x[i].id === 1) {
x[i] = {test: 'updated', id: 3}
break;
}
}
我不知道哪一個是高效得多快一樣或更少的內存使用情況。任何建議非常感謝你。
環路,可能是值得除非有足夠的理由這樣做並避免繼承的屬性(除非您特別想訪問它們),否則不建議使用* for..in *來覆蓋數組中的每個元素。除非你期望找到不止一個元素,否則一旦找到了你之後的元素,你可能會從循環中突破。這兩個示例都創建了id爲3的重複元素。使用[* splice *](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/splice),您可以將元素替換爲一個去,不需要* splice *和* push *。 – RobG
@RobG - 好吧,我不好,我加了一個'break'。 。但是關於循環你會推薦什麼,並回到我的問題,哪個更好**拼接推**或**獲得值**? –
@RobG - 我明白了。 。所以單獨拼接。 。非常感謝讓我試試 –