[英]JavaScript find key by a value in array
我的数据结构如下:
var states = {
'alabama': { abbv:'AL', ec: 9, winner: 0},
'alaska': { abbv:'AK', ec: 3, winner: 0},
'arizona': { abbv:'AZ', ec: 11, winner: 0}
}
我如何通过搜索“AK”找到“阿拉斯加”?
遍历state的名字( keys
),使用find
方法返回正确的state。
var states = { 'alabama': { abbv:'AL', ec: 9, winner: 0}, 'alaska': { abbv:'AK', ec: 3, winner: 0}, 'arizona': { abbv:'AZ', ec: 11, winner: 0} } const searchFor = "AK" const foundState = Object.keys(states).find(stateName => { return states[stateName].abbv === searchFor }) console.log(foundState) // => "alaska" console.log(states[foundState]) // => { abbv:'AK', ec: 3, winner: 0}
有很多方法可以实现它,下面的这个例子是一个动态的,它需要一个源、'prop'(属性)和一个值。 例如:
function getByProp(source, prop, value) {
let item = Object.keys(source).filter(key => source[key][prop] === value);
if (item){
return source[item[0]];
}
return null;
}
let alaska = getByProp(states, 'abbv', 'AK'); // -> alaska prop from states object!
然后你只需传递 arguments,它们是“states”、“abbv”和“AK”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.