使用属性名称

时间:2019-02-13 08:13:40

标签: javascript arrays lodash javascript-objects

我想使用对象属性名称找到对象的javascript数组的索引。我的代码是:-

const checkbox = [{'mumbai': true},{'bangalore': true},{'chennai': true},{'kolkata': true}];


我如何找到钦奈的索引?我可以使用lodash吗?

2 个答案:

答案 0 :(得分:1)

您可以使用.findIndex()

const checkbox = [
  {'mumbai': true},
  {'bangalore': true},
  {'chennai': true},
  {'kolkata': true}
];

const finder = (arr, key) => arr.findIndex(o => key in o);

console.log(finder(checkbox, 'chennai'));
console.log(finder(checkbox, 'kolkata'));
console.log(finder(checkbox, 'delhi'));

答案 1 :(得分:0)

checkbox.map((v,i) => Object.keys(v).indexOf("chennai") !== -1 ? i : -1).filter(v => v !== -1)[0]

将为您提供“ chennai”的索引,将其替换为任何其他键以获得不同的索引。

这是什么:

  • 将数组映射到仅指示包含带有所需键的对象的索引的数组
  • 仅过滤所需的索引
  • 获取第一个(如果有多个条目与您的搜索匹配,您也可以使用其余的内容)

这在每种浏览器中都有效,因为它仅使用.map(),Object.keys()和.filter()