使用 JavaScript 在关联数组中查找键

Finding Keys in associative arrays with JavaScript

使用这个关联数组,我想找到一个特定的键:

var veggie_prices = new Array();
veggie_prices["serves6"] = 20;
veggie_prices["serves8"] = 25;
veggie_prices["serves10"] = 35;

如果我遍历数组,我可以通过以下方式找到值:

var x = veggie_prices[i].value;

但是应该如何找到密钥?

var y = veggie_prices[i].key;

要直接回答您的问题,请使用 for..in 循环

var veggie_prices = new Array();
veggie_prices["serves6"] = 20;
veggie_prices["serves8"] = 25;
veggie_prices["serves10"] = 35;
for (var i in veggie_prices) {
  console.log(i); // output: serves6, etc..
}

但是,需要说明的是,javascript 没有关联数组。你拥有的是一个数组类型的对象,你只是向它添加了几个属性,除了正常的(虽然目前是空的)索引和其他原生数组 properties/methods (例如 .length.pop(), 等等.)

为什么要使用数组?可以改用对象吗?

var veggie_prices = {};
veggie_prices["serves6"] = 20;
veggie_prices["serves8"] = 25;
veggie_prices["serves10"] = 35;

Object.keys(veggie_prices).forEach((key) => {
  console.log('Key is: ' + key);
  console.log('Value is: ' + veggie_prices[key]);
});