var a = ["name","sex","age","attr","num",]
var b = [
{
label:'原始情况',
list:[
{
label:'上报',
prop:'port'
},
{
label:'姓名',
prop:'name'
}
]
},
{
label:'现在情况',
list:[
{
label:'年龄',
prop:'age'
}
]
}
]
有两个数组a,b; 判断a数组中的元素在b数组中的list中存在,只要含有就返回一个 true;并且把list中不含有的删除
不知道你是不是需要写成一个方法。
例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<script>
var a = ["name", "sex", "age", "attr", "num",]
var b = [
{
label: '原始情况',
list: [
{
label: '上报',
prop: 'port'
},
{
label: '姓名',
prop: 'name'
}
]
},
{
label: '现在情况',
list: [
{
label: '年龄',
prop: 'age'
}
]
}
]
/**
* 有两个数组a,b; 判断a数组中的元素在b数组中的list中存在,只要含有就返回一个 true;并且把list中不含有的删除
*/
function hasKey(a, b) {
let res = false;
for (let i = 0; i < b.length; i++) {
for (let j = 0; j < b[i].list.length; j++) {
const item = b[i].list[j];
// 只要含有就返回一个 true;
if (a.indexOf(item.prop) > -1) res = true;
// 并且把list中不含有的删除
else b[i].list.splice(j, 1)
}
}
return res;
}
console.log(hasKey(a, b));
console.log(b);
</script>
</body>
</html>
b.map(item=>{
item.list.map((itenData,index)=>{
if(a.indexOf(itenData.prop)==-1){
item.list.splice(index,1)
}
})
})
console.log(b)