问题:两个对象组成的数组(file[key]和v)合并 [{etag:'asdasd',name:'123'}]
解决:
1,全部转为字符串数组,去重后再还原 对象中的属性排序是不固定的,有时需要重新排序
//对象属性排序不是固定的 var strArr = file[k].map(function(currentValue){ //转为字符串去重 return JSON.stringify(currentValue) }); var strArr2 = v.map(function(currentValue){ return JSON.stringify(currentValue) }); $.each(strArr2,function(k2,v2){ if(strArr.indexOf(v2)==-1){ strArr.push(v2); } }) console.log('!!!!!!!') console.log(strArr) file[k] = strArr.map(function(currentValue){ return JSON.parse(currentValue) })
2,创建索引数组
var etagArr = file[k].map(function(currentValue){ return currentValue.etag; }); $.each(v,function(k2,v2){ if(etagArr.indexOf(v2.etag)==-1){ file[k].push(v2); } })
用了第二种