Python의 values () 사전 메서드에 해당하는 Javascript
이 질문에 이미 답변이 있습니다.
Python에서는이 .values()
메서드를 사용 하여 사전 의 값 을 반복 할 수 있습니다 .
예를 들면 :
mydict = {'a': [3,5,6,43,3,6,3,],
'b': [87,65,3,45,7,8],
'c': [34,57,8,9,9,2],}
values = mydict.values():
values
포함하는 곳 :
[
[3,5,6,43,3,6,3,],
[87,65,3,45,7,8],
[34,57,8,9,9,2],
]
Javascript에서 사전 값만 가져올 수있는 방법은 무엇입니까?
편집하다
내 원래 인쇄 예는 내가 무엇을하고 싶은지 명확하지 않았습니다. 사전 내의 값 목록 / 배열 만 원합니다.
목록을 순환하고 새 값 목록을 만들 수 있다는 것을 알고 있지만 더 나은 방법이 있습니까?
업데이트 된
Adnan의 답변이 첫 번째이므로 찬성했습니다. 도움이된다면 좀 더 자세한 내용을 게시하겠습니다.
for..in을 루프는 당신이 찾고있는 것입니다 -
var dictionary = {
id:'value',
idNext: 'value 2'
}
for (var key in dictionary){
//key will be -> 'id'
//dictionary[key] -> 'value'
}
dictionary
객체의 모든 키를 얻으려면 Object.keys(dictionary)
다음을 수행 할 수 있습니다. 즉, 배열 루프에서 동일한 작업을 수행 할 수 있습니다.
var keys = Object.keys(dictionary);
keys.forEach(function(key){
console.log(key, dictionary[key]);
});
이것은 추악한 if..else
루프 를 작성하지 않고 키를 필터링하려는 경우 특히 유용합니다 .
keys.filter(function(key){
//return dictionary[key] % 2 === 0;
//return !key.match(/regex/)
// and so on
});
업데이트 -사전의 모든 값을 얻으려면 현재 루프를 수행하는 것 외에 다른 방법이 없습니다. 루프를 수행하는 방법은 선택의 문제입니다. 개인적으로 선호합니다
var dictionary = {
a: [1,2,3, 4],
b:[5,6,7]
}
var values = Object.keys(dictionary).map(function(key){
return dictionary[key];
});
//will return [[1,2,3,4], [5,6,7]]
jQuery에는 $ .map ()을 사용하는 한 줄 버전이 있습니다.
var dict = {1: 2, 3: 4};
var values = $.map(dict, function(value, key) { return value });
var keys = $.map(dict, function(value, key) { return key });
Object.values () 는 Firefox 47 및 Chrome 51에서 사용할 수 있습니다. 다음은 다른 브라우저를위한 한 줄 폴리 필입니다.
Object.values = Object.values || function(o){return Object.keys(o).map(function(k){return o[k]})};
Not trying to say that any of the other answers are wrong, but if you're not opposed to using an external library, underscore.js has a method for precisely this:
_.values({one: 1, two: 2, three: 3});
// returns [1, 2, 3]
You can use for in
mydict = {'a': [3,5,6,43,3,6,3,],
'b': [87,65,3,45,7,8],
'c': [34,57,8,9,9,2]};
for (var key in mydict){
alert(mydict[key]);
}
In javascript, you use for..in
to loop the properties of an object.
var mydict = {
'a': [3,5,6,43,3,6,3,],
'b': [87,65,3,45,7,8],
'c': [34,57,8,9,9,2]
};
for (var key in mydict) {
console.log(mydict[key]);
}
In ES6, currently supported by default in Firefox and with flags in Chrome, you can do this:
a = {'a': [3,5,6,43,3,6,3,],
'b': [87,65,3,45,7,8],
'c': [34,57,8,9,9,2]}
values = [a[x] for (x in a)];
values
will now be the expected array.
This is also useful for code golf. Removing the spaces around for
cuts it down to 17 characters.
if you want to get only the values the use the follwing code:
for(keys in mydict){
var elements = mydict[keys];
console.log(elements);
}
you can get Individual elements by index value in elements array.
ReferenceURL : https://stackoverflow.com/questions/11734417/javascript-equivalent-of-pythons-values-dictionary-method
'IT Share you' 카테고리의 다른 글
인증서 저장소에서 매니페스트 서명 인증서를 찾을 수 없습니다. (0) | 2021.01.10 |
---|---|
클래스를 확장하고 인터페이스를 구현하는 일반 클래스 (0) | 2021.01.10 |
WPF의 텍스트 상자 바인딩 업데이트 (0) | 2021.01.10 |
App.config의 connectionStrings configSource가 작동하지 않습니다. (0) | 2021.01.10 |
모든 패딩 및 여백 표 HTML 및 CSS 제거 (0) | 2021.01.10 |