반응형
해시 키 / 값을 배열로
이 질문에 이미 답변이 있습니다.
- 해시 키를 찾는 방법은 무엇입니까? 9 답변
php array_keys()
/에 해당하는 자바 스크립트를 찾을 수 없습니다.array_values()
다음 js 해시가 주어지면 PHP에 익숙하지 않은 사람들을 위해 :
var myHash = {"apples": 3, "oranges": 4, "bananas": 42}
키 배열을 어떻게 얻을 수 있습니까?
["apples", "oranges", "bananas"]
값과 동일한 질문, 즉
[3, 4, 42]
jQuery를 사용할 수 있습니다.
var a = {"apples": 3, "oranges": 4, "bananas": 42};
var array_keys = new Array();
var array_values = new Array();
for (var key in a) {
array_keys.push(key);
array_values.push(a[key]);
}
alert(array_keys);
alert(array_values);
ES5 지원 (또는 shimmed) 브라우저에서 ...
var keys = Object.keys(myHash);
var values = keys.map(function(v) { return myHash[v]; });
MDN의 심 ...
두 번째 답변 (작성 당시)은 다음과 같습니다.
var values = keys.map(function(v) { return myHash[v]; });
하지만 jQuery 자체를 선호합니다 $.map
.
var values = $.map(myHash, function(v) { return v; });
jQuery는 브라우저 간 호환성을 처리하기 때문입니다. 게다가 더 짧습니다 :)
어쨌든 나는 항상 가능한 한 기능적으로 노력합니다. 원 라이너는 루프보다 더 좋습니다.
lodash 또는 underscore에서 _.keys () 및 _.values () 함수를 살펴보십시오.
function getKeys(obj){
var keys = [];
for (key in obj) {
if (obj.hasOwnProperty(key)) { keys[keys.length] = key; }
}
return keys;
}
도움이되는지 모르지만 "foreach"는 모든 키를 통과합니다. for (obj1의 var key) {...}
다음은 phpjs.org의 구현입니다 .
이것은 내 코드 가 아니라 유용한 리소스를 가리키는 것입니다.
var myHash = {"apples": 3, "oranges": 4, "bananas": 42}
vals=(function(e){a=[];for (var i in e) a.push(e[i]); return a;})(myHash).join(',')
keys=(function(e){a=[];for (var i in e) a.push( i ); return a;})(myHash).join(',')
console.log(vals,keys)
원래
array=(function(e){a=[];for (var i in e) a.push(e[i]); return a;})(HASHHERE)
여기의 좋은 예이다 array_keys
에서 PHP.js 라이브러리 :
function array_keys (input, search_value, argStrict) {
// Return just the keys from the input array, optionally only for the specified search_value
var search = typeof search_value !== 'undefined',
tmp_arr = [],
strict = !!argStrict,
include = true,
key = '';
for (key in input) {
if (input.hasOwnProperty(key)) {
include = true;
if (search) {
if (strict && input[key] !== search_value) {
include = false;
}
else if (input[key] != search_value) {
include = false;
}
}
if (include) {
tmp_arr[tmp_arr.length] = key;
}
}
}
return tmp_arr;
}
동일은 간다 array_values
( 같은 PHP.js 라이브러리에서 )
function array_values (input) {
// Return just the values from the input array
var tmp_arr = [],
key = '';
for (key in input) {
tmp_arr[tmp_arr.length] = input[key];
}
return tmp_arr;
}
편집 : 코드에서 불필요한 절을 제거했습니다.
참고 URL : https://stackoverflow.com/questions/10415133/hash-keys-values-as-array
반응형
'developer tip' 카테고리의 다른 글
C #을 사용하여 시스템 가동 시간 검색 (0) | 2020.12.14 |
---|---|
Google Maps API 3 : 오른쪽 클릭으로 좌표 얻기 (0) | 2020.12.14 |
Apple Development Push Services의 개인 키를 찾을 수 없습니다. (0) | 2020.12.14 |
Node js 오류 : 프로토콜“https :”가 지원되지 않습니다. (0) | 2020.12.14 |
Xamarin Forms에 해당하는 토스트 (0) | 2020.12.14 |