标签:
最近写业务代码的时候遇到个问题:如何进行两组数据的匹配?首先想到的就是嵌套双重循环(我这里是两组数组),但是双重循环性能是很低的。这里我尝试两种方法做个数组去重处理。
var oldArr = [{
id: 1,
name: ‘value1‘
},
{
id: 2,
name: ‘value2‘
},
{
id: 3,
name: ‘value3‘
},
{
id: 4,
name: ‘value3‘
},
{
id: 5,
name: ‘value5‘
}
],
newArr = [],
map = {}
// 方法一
for(var i = 0;i < oldArr.length;i ++){
var el = oldArr[i],isRepeat = false
if(!newArr.length){
newArr.push(el)
continue
}
for (var j = 0; j < newArr.length; j++) {
var innerEl = newArr[j]
if(el.name == innerEl.name){
isRepeat = true
break
}
}
if(!isRepeat){
newArr.push(el)
}
}
console.log(newArr)
// 方法二
for(var i = 0;i < oldArr.length;i ++){
var el = oldArr[i].name
if(!map[el]){
newArr2.push(oldArr[i])
map[el] = true
}else{
alert(‘有重复!‘)
}
}
console.log(newArr2)
写得不是很好,只是自己把思路理了一下。。。。。。
标签:
原文地址:http://www.cnblogs.com/jlchen/p/4740819.html