[javascript] 숫자 키가있는 JavaScript 객체를 배열로 변환

서버에서 JSON 응답으로 다시 오는 이와 같은 객체가 있습니다.

{"0":"1","1":"2","2":"3","3":"4"}

다음과 같이 JavaScript 배열로 변환하고 싶습니다.

["1","2","3","4"]

가장 좋은 방법이 있습니까? 내가 읽는 곳마다 사람들은 루프를 사용하여 복잡한 논리를 사용하고 있습니다. 이 작업을 수행하는 다른 방법이 있습니까?



답변

실제로 jQuery와 매우 직설적입니다. $.map

var arr = $.map(obj, function(el) { return el });

깡깡이

jQuery를 사용하지 않고도 키를 배열로 변환 한 다음 값을 다시 매핑하면 거의 쉽게 Array.map

var arr = Object.keys(obj).map(function(k) { return obj[k] });

깡깡이

그것은 이미 자바 스크립트 객체로 구문 분석되었으며 실제로 문자열 형식 인 JSON이 아니라고 가정합니다.이 경우 실행 JSON.parse도 필요합니다.

ES2015에는 Object.values구조가있어 바람이 불고 있습니다.

var arr = Object.values(obj);


답변

var json = '{"0":"1","1":"2","2":"3","3":"4"}';

var parsed = JSON.parse(json);

var arr = [];

for(var x in parsed){
  arr.push(parsed[x]);
}

이것이 당신이 추구하는 것이기를 바랍니다!


답변

당신은 단순히 그것을 좋아합니다

var data = {
    "0": "1",
    "1": "2",
    "2": "3",
    "3": "4"
};
var arr = [];
for (var prop in data) {
    arr.push(data[prop]);
}
console.log(arr);

데모


답변

“JSON 객체”와 같은 것은 없습니다. JSON은 직렬화 표기법입니다.

자바 스크립트 객체자바 스크립트 배열 로 변환 하려면 자신 만의 루프를 작성하거나 (복잡하지는 않습니다!) underscore.js _.toArray() 메소드를 사용합니다.

var obj = {"0":"1","1":"2","2":"3","3":"4"};
var yourArray = _(obj).toArray();


답변

여기서 어려운 것은 없습니다. 객체 요소를 반복하여 배열에 할당

var obj = {"0":"1","1":"2","2":"3","3":"4"};
var arr = [];
for (elem in obj) {
   arr.push(obj[elem]);
}

http://jsfiddle.net/Qq2aM/


답변

var JsonObj = {
  "0": "1",
  "1": "2",
  "2": "3",
  "3": "4"
};

var array = [];
for (var i in JsonObj) {
  if (JsonObj.hasOwnProperty(i) && !isNaN(+i)) {
    array[+i] = JsonObj[i];
  }
}

console.log(array)

데모


답변

이 시도:

var newArr = [];
$.each(JSONObject.results.bindings, function(i, obj) {
    newArr.push([obj.value]);
});