需要遍历arr1的icon,如果和arr2相同,给arr1对应项的number+1
var arr1 = [{icon: "1", number: 0},{icon: "2", number: 0},{icon: "3", number: 0},{icon: "4", number: 0}];
var arr2 = [{icon: "2"},{icon: "1"},{icon: "2"}];
var map = {};
for (var i = 0; i < arr1.length; i ++) {
if (typeof map[arr1[i].icon] == "undefined") {
map[arr1[i].icon] = [ ];
}
map[arr1[i].icon].push( i );
}
for (var i = 0; i < arr2.length; i ++) {
if (typeof map[arr2[i].icon] != "undefined") {
arr1[map[arr2[i].icon]].number += 1;
}
}
console.log(arr1);
for(var i=0;i<arr1.length;i++){
for(var j=0;j<arr2.length;j++){
var a = arr1[i].icon;
var b = arr2[j].icon;
if(a==b){
arr1[i].number +=1;
}
}
}
console.log(arr1);
比较普通的方法,等大佬来解答高效率的~~
arr1.map(item => item.icon === arr2[0].icon ? item.number+=1 : null);
// arr2存放多个
arr1.map(item => {
arr2.map(item2 => {
if (item.icon === item2.icon) {
return item.number+=1;
}
});
});
试试我这个,新鲜出炉的,绝对可以!^_^
let arr1 = [
{ icon: "1", number: 0 },
{ icon: "2", number: 0 },
{ icon: "3", number: 0 },
{ icon: "4", number: 0 }
];
let arr2 = [{ icon: "2" }];
arr1 = arr1.map(item =>
JSON.stringify(arr2).indexOf(JSON.stringify({ icon: item.icon })) != -1
? { icon: item.icon, number: (item.number += 1) }
: item
);
var arr1 = [{icon:'1',number:'0'},{icon:'2',number:'0'},{icon:'3',number:'0'},{icon:'4',number:'0'}];
var arr2 = [{icon:'2'}];
for(var i = 0;i < arr1.length;i++){
if (arr1[i].icon == arr2[0].icon) {
arr1[i].number ++;
};
}
console.log(arr1);
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决