我正在尝试检查一个数组以查看是否只有一个元素具有数据。例如,这是我的数组:
playersByGender = {
mens: [],
womens: [],
other: []
};
这些的任何组合都可以有数据,也可以只有一个。如果只填写了一项,我将如何检查所有三项并返回 bool 值?
我考虑过使用 foreach,但你无法在对象上执行此操作。
任何帮助都会很棒,谢谢!
最佳答案
迭代对象的keys与 Array#reduce ,对于每个长度 > 0 的数组,将 1 添加到 sum
中。比较最终的总和以获得 bool 答案。
const playersByGender = {
mens: [],
womens: [1, 2],
other: []
};
const onlyOne = (obj) => Object.keys(obj).reduce((sum, k) => obj[k].length > 0 ? sum + 1 : sum, 0) === 1;
console.log(onlyOne({
mens: [],
womens: [1, 2],
other: []
}));
console.log(onlyOne({
mens: [],
womens: [1, 2],
other: [1]
}));
关于javascript - 检查对象中是否只有一个数组有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48389282/