簡體   English   中英

Javascript方法將第一個(對象)數組的屬性復制到另一個不同長度的(對象)數組中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM