자바 스크립트 사전에서 키 컬렉션을 얻는 방법은 무엇입니까? [복제]
이 질문에 이미 답변이 있습니다.
- 객체의 키 배열 가져 오기 8 답변
사전이 있습니다.
var driversCounter = {
"one": 1,
"two": 2,
"three": 3,
"four": 4,
"five": 5
}
이제 드롭 다운 목록에 표시해야합니다. 내 사전에서 키 컬렉션을 가져 오는 방법은 무엇입니까?
이전 브라우저에서 사용 Object.keys()
하거나 shim ...
const keys = Object.keys(driversCounter);
당신이 원하는 경우 값을 , 거기 Object.values()
당신이 키하려는 경우 와 가치, 당신이 사용할 수있는 Object.entries()
자주와 결합, 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);
}
한 가지 옵션은 다음을 사용하는 것입니다 Object.keys()
.
Object.keys(driversCounter)
최신 브라우저에서는 잘 작동합니다 (그러나 IE는 버전 9부터 지원합니다).
호환되는 지원을 추가하려면 MDN에 제공된 코드 조각을 복사 할 수 있습니다 .
"사전"(JS에서는 객체라고 부름)을 for in
반복 하려면 루프를 사용합니다 .
for(var key in driversCounter) {
if(driversCounter.hasOwnProperty(key)) {
//key = keys, left of the ":"
//driversCounter[key] = value, right of the ":"
}
}
이것은 모든 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);
}
}
}
}
사용하다 Object.Keys()
var driversCounter = {
"one": 1,
"two": 2,
"three": 3,
"four": 4,
"five": 5
}
console.log(Object.keys(driversCounter));
최신 JS 엔진으로 다음을 사용할 수 있습니다. Object.keys(driversCounter)
새 브라우저의 경우 : Object.keys( MY_DICTIONARY )
키 배열을 반환합니다. 그렇지 않으면 구식 방식으로 가고 싶을 수 있습니다.
var keys = []
for(var key in dic) keys.push( key );
다른 사람들이 말했듯 이을 사용할 수 는 Object.keys()
있지만 누가 이전 브라우저를 신경 쓰나요?
글쎄요.
Try this. array_keys
from PHPJS ports PHP's handy array_keys
function so it can be used in JS. At a glance, it uses Object.keys
if supported, but handles the case where it isn't very easily. It even includes filtering the keys based on values you might be looking for (optional) and a toggle for whether or not to use strict comparison ===
versus typecasting comparison ==
(optional)
if you can use JQuery then
var keys = [];
$.each(driversCounter, function(key, value) {
keys.push(key);
});
console.log(JSON.stringify(keys));
here follows the answer:
["one","two","three","four","five"]
and this way you wouldn't have to worry if the browser supports Object.keys
method or not.
A different approach would be to using multi-dimensional arrays:
var driversCounter = [
["one", 1],
["two", 2],
["three", 3],
["four", 4],
["five", 5]
]
and access the value by driverCounter[k][j], where j=0,1 in the case.
Add it in a drop down list by:
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];
}
참고URL : https://stackoverflow.com/questions/10654992/how-to-get-collection-of-keys-in-javascript-dictionary
'developer tip' 카테고리의 다른 글
포토샵은 두 이미지를 어떻게 혼합합니까? (0) | 2020.09.23 |
---|---|
대소 문자를 구분하지 않는 xpath contains () 가능? (0) | 2020.09.23 |
EC2 인스턴스를 재부팅하면 어떻게됩니까? (0) | 2020.09.22 |
자바 : 재정의 된 메서드를 호출하는 슈퍼 메서드 호출 (0) | 2020.09.22 |
시간이 아닌 DURATION 시간으로 작업 (0) | 2020.09.22 |