如何在JavaScript字典中获取密钥集合?
我有一本字典:如何在JavaScript字典中获取密钥集合?,javascript,dictionary,Javascript,Dictionary,我有一本字典: var driversCounter = { "one": 1, "two": 2, "three": 3, "four": 4, "five": 5 } 现在,我需要在下拉列表中显示它。如何在字典中获取密钥集合?在较旧的浏览器中使用它 const keys = Object.keys(driversCounter); 如果您
var driversCounter = {
"one": 1,
"two": 2,
"three": 3,
"four": 4,
"five": 5
}
现在,我需要在下拉列表中显示它。如何在字典中获取密钥集合?在较旧的浏览器中使用它
const keys = Object.keys(driversCounter);
如果您需要值,则有;如果您需要键和值,则可以使用,通常与Array.prototype.forEach()配合使用,如下所示
Object.entries(driversCounter).forEach(([key, value]) => {
console.log(key, value);
});
或者,考虑到您的用例,也许这可以做到
var selectBox, option, prop;
selectBox = document.getElementById("drivers");
for (prop in driversCounter) {
option = document.createElement("option");
option.textContent = prop;
option.value = driversCounter[prop];
selectBox.add(option);
}
使用现代JavaScript引擎,您可以使用Object.keys(driversCounter)
一个选项是:
它适用于现代浏览器(但是,Internet Explorer仅从一开始就支持它)
要添加兼容支持,您可以复制中提供的代码片段以循环“字典”(我们在JavaScript中称其为对象),使用for in
循环:
for(驱动器计数器中的变量键){
if(driversCounter.hasOwnProperty(键)){
//键=键,位于“:”的左侧
//driversCounter[键]=值,位于“:”的右侧
}
}
对于新浏览器:对象。键(MY_DICTIONARY)
将返回一个键数组。否则,你可能会想走老路:
var keys = []
for(var key in dic) keys.push( key );
正如其他人所说,您可以使用Object.keys()
,但谁会关心较旧的浏览器呢
嗯,我喜欢
试试看array_-keys
来自PHPJS端口PHP的便捷array_-keys
函数,因此可以在JavaScript中使用
乍一看,如果支持的话,它会使用
Object.keys
,但它处理的情况并不容易。它甚至包括根据您可能要查找的值筛选键(可选),以及是否使用严格比较==
与类型转换比较==
(可选)的切换。这将在所有JavaScript实现中起作用:
var keys = [];
for (var key in driversCounter) {
if (driversCounter.hasOwnProperty(key)) {
keys.push(key);
}
}
与前面提到的其他方法一样,您可以使用Object.keys
,但在较旧的引擎中可能无法使用。因此,您可以使用以下猴子补丁:
if (!Object.keys) {
Object.keys = function (object) {
var keys = [];
for (var key in object) {
if (object.hasOwnProperty(key)) {
keys.push(key);
}
}
}
}
另一种方法是使用多维数组:
var driversCounter = [
["one", 1],
["two", 2],
["three", 3],
["four", 4],
["five", 5]
]
并通过driverCounter[k][j]访问该值,在这种情况下,j=0,1。
通过以下方式将其添加到下拉列表中:
var dd = document.getElementById('your_dropdown_element');
for(i=0;i<driversCounter.length-1;i++)
{
dd.options.add(opt);
opt.text = driversCounter[i][0];
opt.value = driversCounter[i][1];
}
var dd=document.getElementById('your_dropdown_element');
对于(i=0;i,如果可以使用jQuery
var keys = [];
$.each(driversCounter, function(key, value) {
keys.push(key);
});
console.log(JSON.stringify(keys));
答案如下:
["one", "two", "three", "four", "five"]
这样,您就不必担心浏览器是否支持Object.keys
方法。只需使用Object.keys()
:
var driversCounter={
"一":一,,
"二":,
"三":,
"四":,
“五”:5
}
console.log(Object.keys(driversCounter));
由于可能的原型设计而不完整。dict.hasOwnProperty(key)
这与前面的答案有什么不同?
["one", "two", "three", "four", "five"]