![](/img/trans.png)
[英]Add new properties to an array of objects from another array with different lengths so once the array is done iterating, it starts from first again
[英]Javascript approach to copy properties of first array(of objects) into another array(of objects) of different lengths
我有一個對象數組說
srcObj = [{a:1, b:2}, {c:3, d:4}]
destObj = [{a:1, b:2}]
我想將此數組的值復制到另一個長度可能比上面的srcObj數組短的數組中。 我將如何構造循環以根據srcObj數組的大小來增加destObj數組的長度,然后將srcObj數組中缺少的項插入到destObj數組中。
以下代碼可以完成這項工作:
function containsObject(obj, list) { var i; for (i = 0; i < list.length; i++) { if (JSON.stringify(list[i]) === JSON.stringify(obj)) { return true; } } return false; } var srcObj = [{a:1, b:2}, {c:3, d:4}] var destObj = [{a:1, b:2}] for(var i = 0; i < srcObj.length; i++) { if (!containsObject(srcObj[i], destObj)){ destObj.push(srcObj[i]); } } console.log(destObj);
如果您想以更慢速且更通用的方式比較對象,我建議您閱讀以下問題的答案: JavaScript中的對象比較
(假設destObj.length <srcObj.length是已知的)
也許:
var i;
while ((i = destObj.length) < srcObj.length) {
destObj.push(srcObj[i]);
}
?
(但是請注意,這只是從srcObj到destObj的數組項的淺表副本;實際上,“復制的”對象值將由兩個數組通過引用共享;這可能是您想要的,也可能不是)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.