将第一个(对象的)数组的属性复制到不同长度的另一个(对象)数组的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;"复制"的对象值实际上将由两个数组通过引用共享;这可能是也可能不是您想要的(
相关文章:
- 将数组对象传递到struts2中的操作类
- 如何使用jquery返回php-json数组对象
- 从其名称获取javascript数组对象
- 值未与数组对象绑定
- 如何按数组/对象值的倍数过滤对象数组
- 在表中显示数组对象
- 在数组对象中分组
- 将第二个或多个数组推送到数组对象 AngularJS 中
- 重新排列 JavaScript 数组/对象
- 键上的javascript数组对象过滤器
- handontable:在不更改数据数组/对象的情况下隐藏某些列
- 用于跟踪购物车可用性的Javascript数组/对象/哈希表
- 重建有角度的java脚本数组对象
- 对JSON数组对象进行排序
- 连接与数组对象相关的文本:方式和位置
- 哪些浏览器和版本支持将常见的类数组对象直接传递到fn.apply()
- 如何使用Handlebars循环数组对象和模板
- 是否可以引用JS数组/对象中的另一个元素
- Javascript中的名称索引-数组/对象
- 数组长度不等于数组对象