判断两个数组内相同的值,如果有相同的值则改变对应的值状态
举个实际场景的例子,一个下拉菜单,里面有四个人,可以选中人员,如果人员已经选中,那么就将它的状态变为不可选。
这样就涉及到了两个数组,一个是弹窗内供选择人员的数组,一个是已经选择了的人员数组,如果弹窗内的人员已经被选择过了,那么即不可再选择,此时就涉及到了将已经选择的人员与所有供选择的人员进行对比。
const ryList = [
{ key: '1', disabled: false, name: 'zhangsan', sex: '男', country: '国籍' },
{ key: '2', disabled: false, name: 'lisi', sex: '男', country: '国籍' },
{ key: '3', disabled: false, name: 'wanger', sex: '男', country: '国籍' },
{ key: '4', disabled: false, name: 'lvqian', sex: '男', country: '国籍' },
];
const checkedPerson = ['zhangsan','lisi'];
ryList.filter(function (item,index) {
//if (activityKey == item.key) { //此处是做的如果选择了多人 tab选项卡显示的人员名字用/隔开
//item.name = checkedPerson.toString().replace(/,/g, '/')
//}
let i = 0;
while (i < checkedPerson.length) {
if (item.name == checkedPerson[i]) {
ryList[index].disabled = true; i = checkedPerson.length;
} else { ++i; }
}
// return checkPerson.indexOf(item.name) == -1; //此处做的如果不想要选择的那个选项卡,可以删除
});
如果供选择的人员(ryList )里面有选中(checkedPerson )的人,那么将数组内的disabled值改为true,此方法就算顺序不一样,也可生效。