使用 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]);
});
使用这个关联数组,我想找到一个特定的键:
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]);
});