如何在Javascript中合并两个数组
第一阵列如何在Javascript中合并两个数组,javascript,arrays,Javascript,Arrays,第一阵列 [{'value':'one','other':'othervalue'},{value:'two'},{value:'three'},{value:'four'}] 第二阵列 ['one','two','six','five'] 这里我想在第一个数组的value属性中添加第二个数组值,如果有unique,那么代码必须跳过它。我尝试过循环所有的值,比如 for( var i=0; i < eLength; i++ ) { for( var j = 0; j <
[{'value':'one','other':'othervalue'},{value:'two'},{value:'three'},{value:'four'}]
第二阵列
['one','two','six','five']
这里我想在第一个数组的value属性中添加第二个数组值,如果有unique,那么代码必须跳过它。我尝试过循环所有的值,比如
for( var i=0; i < eLength; i++ ) {
for( var j = 0; j < rLength; j++ ) {
if( temp[j].values != enteredValues[i] ) {
console.log()
var priority = enteredValues.indexOf( enteredValues[i] ) + 1;
var obj = { 'values': enteredValues[i] };
}
}
reportbody.push( obj) ;
}
for(变量i=0;i
var-original=[{'value':'one','other':'othervalue'},{value:'two'},{value:'three'},{value:'four'}];
变量toAdd=['1','2','6','5'];
//首先,用原始数组制作一个字典
//这将节省查找时间
var dictionary=original.reduce(函数(p,c){
p[c.值]=c;
返回p;
}, {});
//现在,对于新列表中的每个项目
toAdd.forEach(功能(i){
//检查字典中是否还没有
如果(!字典[i]){
//把它加到字典里
字典[i]={value:i};
//和您的原始阵列
原始.推送(字典[i]);
}
});
控制台日志(原件)代码>
var-original=[{'value':'one','other':'othervalue'},{value:'two'},{value:'three'},{value:'four'}];
变量toAdd=['1','2','6','5'];
//首先,用原始数组制作一个字典
//这将节省查找时间
var dictionary=original.reduce(函数(p,c){
p[c.值]=c;
返回p;
}, {});
//现在,对于新列表中的每个项目
toAdd.forEach(功能(i){
//检查字典中是否还没有
如果(!字典[i]){
//把它加到字典里
字典[i]={value:i};
//和您的原始阵列
原始.推送(字典[i]);
}
});
控制台日志(原件)代码>通过使用循环数据设置对象,可以将对象用作对象数组中值的哈希表
然后检查数组中是否有值,如果没有,则将新对象推送到数据数组
var data=[{value:'one',other:'othervalue'},{value:'two'},{value:'three'},{value:'four'}],
值=['1','2','6','5','6'],
hash=Object.create(null);
data.forEach(函数(a){
hash[a.value]=true;
});
值。forEach(函数(a){
如果(!散列[a]){
hash[a]=true;
data.push({value:a});
}
});
控制台日志(数据)代码>
.as console wrapper{max height:100%!important;top:0;}
通过使用循环数据设置对象,可以将对象用作对象数组中值的哈希表
然后检查数组中是否有值,如果没有,则将新对象推送到数据数组
var data=[{value:'one',other:'othervalue'},{value:'two'},{value:'three'},{value:'four'}],
值=['1','2','6','5','6'],
hash=Object.create(null);
data.forEach(函数(a){
hash[a.value]=true;
});
值。forEach(函数(a){
如果(!散列[a]){
hash[a]=true;
data.push({value:a});
}
});
控制台日志(数据)代码>
。作为控制台包装{max height:100%!important;top:0;}
尽管使用哈希表或字典可能会有性能优势,但最简单的实现是
second.forEach(s => {
if (!first.find(f => f.value === s)) first.push({value: s});
});
如果您确实想使用哈希表,从语义上讲,您可能更喜欢使用集合:
const dict = new Set(first.map(f => f.value));
second.forEach(s => { if (!dict.has(s)) first.push({value: s}); });
上面的代码不会处理第二个数组中的重复项,因此如果这是一个问题,您需要相应地进行调整。尽管使用哈希表或字典可能有性能优势,但最简单的实现是
second.forEach(s => {
if (!first.find(f => f.value === s)) first.push({value: s});
});
如果您确实想使用哈希表,从语义上讲,您可能更喜欢使用集合:
const dict = new Set(first.map(f => f.value));
second.forEach(s => { if (!dict.has(s)) first.push({value: s}); });
上面的代码不会处理第二个数组中的重复项,因此如果这是一个问题,您需要相应地进行调整。然后,您得到了什么结果?您具体的编码问题是什么?什么是eLength
,rLength
,输入值[i]
?那个空的console.log()
…的可能重复的可能重复,以及,您得到了什么结果?您具体的编码问题是什么?什么是eLength
,rLength
,输入值[i]
?空的console.log()
…可能重复的唯一问题是值
已经包含重复项。示例:values=['one','two','six','five','six']
将添加six
两次唯一的问题是值是否已经包含重复项。示例:value=['one','two','six','five','six']
将添加six
两次