【发布时间】:2017-02-21 08:13:14
【问题描述】:
我正在尝试过滤数组中的一些对象。但是当我这样做时,我只会得到一个空数组。
代码:
let guilds = guildsData.filter((el) => {
return el.owner == 'true';
});
console.log(guilds);
数组:
[
{ owner: false,
permissions: 2146958463,
icon: 'e568d2b87e31358588cb982354628d51',
id: '267920024570691586',
name: 'Hydra' },
{ owner: true,
permissions: 2146958463,
icon: null,
id: '269159705794838529',
name: 'test 2' } ]
(我删除了大部分对象,但它们都看起来像这样)
【问题讨论】:
-
因为
"true" != true -
这看起来像是一个真假问题,el.owner 的预期类型是什么?如果您要比较字符串值
true,那么您需要使用el.owner === 'true',它将比较el.owner的值和类型。如果 el.owner 是布尔值,那么您可以使用let guilds = guildsData.filter(x => x.owner);进行过滤
标签: javascript arrays node.js