【发布时间】:2019-09-10 19:19:53
【问题描述】:
在下面的代码中有 usersData 对象,其中包含 usersList 数组。
const usersData = {
usersList: [
{
user: "user1",
langSpeak: ["IND","SPN"],
},
{
user: "user2",
langSpeak: ["IND"],
},
{
user: "user1",
langSpeak: ["IND", "SPN", "JPN"],
},
{
user: "user3",
langSpeak: ["IND", "SPN"],
},
{
user: "user3"
}
]
};
let usersKey = ["user","langSpeak"];
let usersValue = ["user1","IND","SPN"];
let userColl = usersData.usersList.filter(userObj => {
return usersKey.forEach( usersKey => {
if(Array.isArray(userObj[usersKey])){
return userObj[usersKey] && usersValue.forEach(x => {
console.log("x===" + usersKey)
return userObj[usersKey].includes(x)
});
}
if(!Array.isArray(userObj[usersKey])){
console.log(usersKey)
return usersValue.includes(userObj[usersKey]);
}
});
});
console.log(userColl);
有usersKey 和usersValue。
过滤键和值的代码已经存在。
我检查了过滤器函数的值是否包含数组,这取决于返回的过滤器数据。
并且最终输出存储到userColl变量中。
目前我在输出中得到 null,但我期待 first 和 third userList 对象;还有条件是我不想更改usersKey 和usersValue。
提前致谢。
【问题讨论】:
-
请同时提供预期的 JSON 或输出
-
预期输出:usersList: [ { user: "user1", langSpeak: ["IND","SPN"], }, { user: "user1", langSpeak: ["IND", " SPN", "JPN"], }]
-
usersKey和userValue有什么用? -
而且,原始 JSON 中的任何地方都不存在关键的“代码”?
-
不应该是
usersKey是["user", "langSpeak"]?
标签: javascript arrays function object ecmascript-6