Ala*_*hen 2 javascript ecmascript-6
我知道在数组中找到一个值是否存在我可以使用indexOf,但是如何使用一个对象数组呢?
const x = [{
"id": "roadshows",
"name": "Roadshows"
}, {
"id": "sporting_events",
"name": "Sporting Events"
}]
console.log( x.indexOf('roadshows') ) // don't work
Run Code Online (Sandbox Code Playgroud)
由于这是标记为ecmascript-6,这是一个ES6数组方法Array#findIndex()::
const x = [{
"id": "roadshows",
"name": "Roadshows"
}, {
"id": "sporting_events",
"name": "Sporting Events"
}]
console.log( x.findIndex( o => o.id === 'roadshows' ) )Run Code Online (Sandbox Code Playgroud)
如果您想要一种更可重用的方法,请考虑创建一个工厂isId(id):
function isId(id) {
return (o) => o.id === id;
}
const x = [{
"id": "roadshows",
"name": "Roadshows"
}, {
"id": "sporting_events",
"name": "Sporting Events"
}]
console.log( x.findIndex( isId('roadshows') ) )Run Code Online (Sandbox Code Playgroud)
这被称为"工厂",因为它是一个函数,在其范围内返回一个带有传递参数的函数.