1、当数组与另一组数据具有共同id,则更改数组中的某个值
当数组【arr】的[id]出现在数组【arrSelect】的[id]时,【arr】的子集isShow置为“1”
arr: [
{ id: 1, name: "qq", isshow: "0" },
{ id: 2, name: "ww", isshow: "0" },
{ id: 3, name: "ee", isshow: "0" },
{ id: 4, name: "rr", isshow: "0" },
],
arrSelect: [{ id: 2 }, { id: 4 }]
function tests() {
for (let i of arr.value) { //循环arr
const a = arrSelect.value.find((item) => i.id === item.id); //在arrSelect中寻找共同id
console.log(a) //存在则返回arrSelect的子集(对象) 不存在则返回undefined
//存在返回 id:2 id:4
//不存在返回 undefined
if (a !== undefined) {//存在时,改变数值
i.isshow = "1"
}
}
console.log(arr.value)
//arr最后结果:
//[{id: 1, name: 'qq', isshow: '0'},{id: 2, name: 'ww', isshow: '1'},{id: 3, name: 'ee', isshow: '0'},{id: 4, name: 'rr', isshow: '1'}]
2、保留数组重复部分 或 修改重复部分的值
arr: [
{ id: 1, name: "qq", isshow: "0" },
{ id: 2, name: "ww", isshow: "1" },
{ id: 3, name: "ee", isshow: "2" },
{ id: 4, name: "rr", isshow: "0" },
],
arr2:[2,3],
保留重复部分:
function tests() {
//indexOf()方法可返回某个指定的字符串值在字符串中首次出现的位置
let data = arr.value.filter(item =>arr2.value.indexOf(item.id) > -1)
console.log('data',data)
//data最后的值:[{ id: 2, name: "ww", isshow: "1" }, { id: 3, name: "ee", isshow: "2" }]
}
修改重复部分:
function tests() {
arr.value.filter((item) => {
if (arr2.value.indexOf(item.id) > -1) {
item.isshow = "false";
}
});
console.log("arr", arr.value);
//arr最后的值: [
// { id: 1, name: "qq", isshow: "0" },{ id: 2, name: "ww", isshow: "false" },
// { id: 3, name: "ee", isshow: "false" },{ id: 4, name: "rr", isshow: "0" }]
}