数组合并
数组合并不去重
- 方法一:arr1.concat(arr1)
- 方法二:arr1.push.apply(arr1,arr2)
- 方法三:[…arr1,…arr2]
- 方法四:arr1.push(…arr) 方法一、方法三不改变原数组;方法二、方法四会改变arr1
数组合并去重
方法一:new Set() 该方法只适用于简单数据类型的数组,不适合对象数组
[...new Set([...[1,2], ...[1,2]])]
方法二:利用对象key的唯一性
let jsonArr = [
{
"NO": "3",
"NAME": "测试对象3"
},
{
"NO": "4",
"NAME": "测试对象4"
},
{
"NO": "5",
"NAME": "测试对象5"
}
];
let jsonArr2 = [
{
"ID": "",
"NO": "3",
"NAME": "测试对象3"
},
{
"ID": "",
"NO": "4",
"NAME": "测试对象4"
},
{
"ID": "",
"NO": "6",
"NAME": "测试对象6"
},
];
let length1 = jsonArr.length;
let length2 = jsonArr2.length;
let obj = {}
for (let i = 0; i < length1; i++) {
obj[jsonArr[i]['NO']] = jsonArr[i]
}
for (let j = 0; j < length2; j++) {
obj[jsonArr2[j]['NO']] = jsonArr2[j]
}
console.log(Object.values(obj));
方法三:嵌套的for循环
let length1 = jsonArr.length;
let length2 = jsonArr2.length;
for (let i = 0; i < length1; i++) {
for (let j = 0; j < length2; j++) {
if (jsonArr.length > 0) {
if (jsonArr[i].NO === jsonArr2[j].NO) {
jsonArr.splice(i, 1)
length1--
}
}
}
}
for (let n = 0; n < jsonArr2.length; n++) {
jsonArr.push(jsonArr2[n]);
}
console.log(jsonArr);
单个数组去重(不涉及合并)
参考下面的文档:www.zhihu.com/question/27…