我的数据结构如下:
var states = {
'alabama': { abbv:'AL', ec: 9, winner: 0},
'alaska': { abbv:'AK', ec: 3, winner: 0},
'arizona': { abbv:'AZ', ec: 11, winner: 0}
}
如何说搜索“ AK”来找到“阿拉斯加”?
答案 0 :(得分:6)
迭代状态名称(keys
),然后使用find
方法返回正确的状态。
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}
答案 1 :(得分:1)
有很多方法可以实现它,下面的示例是动态的,它带有一个源,“ 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!
然后,您只需传递“状态”,“ abbv”和“ AK”的参数即可。