繁体   English   中英

JavaScript 通过数组中的值查找键

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM