【发布时间】:2021-03-31 04:43:36
【问题描述】:
我有一个嵌套数组。它们都有一个名为 name 的值。 name 可以是 A 或 B。现在我想比较所有元素,如果所有元素都是 A 或 B,我想得到 true。
输入:
[
{
"arr": {
"teachers": [
{
"name": "A"
}
]
}
},
{
"arr2": {
"teachers": [
{
"name": "B"
}
]
}
}
]
我想检查是否所有的 foo 值都相同。
我有一个解决方案,但它看起来很难看,因为我必须放“A”:
const foo = this.arr.map(i => i.teachers.every(j => j.name.includes('A')));
const foo2 = foo.every(e => e === foo[0]);
【问题讨论】:
-
在平台 sn-p 中运行相同的代码会引发错误 i.teachers is undefined。 Map 没有展平您的数组,或者换句话说,没有映射嵌套数组。您需要使用递归解决方案或使用其他内置方法先展平数组,然后检查所有值是 A 还是 B
标签: javascript arrays typescript dictionary