values recorrer objetos objeto keys array agregar javascript jquery arrays json javascript-objects

recorrer - Conversión de objeto JavaScript con teclas numéricas en matriz



recorrer objeto javascript (15)

Tengo un objeto como este que vuelve como una respuesta JSON del servidor:

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

Quiero convertirlo en una matriz de JavaScript como esta:

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

¿Hay una mejor manera de hacer esto? Dondequiera que esté leyendo, las personas están usando lógica compleja usando bucles. Entonces, ¿hay métodos alternativos para hacer esto?


Aquí hay un ejemplo de cómo puede obtener una matriz de objetos y luego ordenar la matriz.

function osort(obj) { // map the object to an array [key, obj[key]] return Object.keys(obj).map(function(key) { return [key, obj[key]] }).sort( function (keya, keyb) { // sort(from largest to smallest) return keyb[1] - keya[1]; } ); }


En realidad, es muy sencillo con $.map jQuery

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

FIDDLE

y casi tan fácil sin jQuery también, convirtiendo las claves en una matriz y luego mapeando los valores con Array.map

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

FIDDLE

Suponiendo que ya se haya analizado como un objeto JavaScript, y no es realmente JSON, que es un formato de cadena, en ese caso JSON.parse sería necesario ejecutar JSON.parse .

En ES2015 hay Object.values para el rescate, lo que hace que esto sea muy sencillo

var arr = Object.values(obj);


Esta es la mejor solución. Creo que si.

Object.keys(obj).map(function(k){return {key: k, value: obj[k]}})


Nada difícil aquí. Haz un bucle sobre tus elementos de objeto y asígnales a la matriz

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

http://jsfiddle.net/Qq2aM/


No estoy seguro de lo que me falta aquí, pero simplemente probar el siguiente código hace el trabajo. ¿Me estoy perdiendo algo aquí?

https://jsfiddle.net/vatsalpande/w3ew5bhq/

$(document).ready(function(){ var json = { "code" :"1", "data" : { "0" : {"id":"1","score":"44"}, "1" : {"id":"1","score":"44"} } }; createUpdatedJson(); function createUpdatedJson(){ var updatedJson = json; updatedJson.data = [updatedJson.data]; $(''#jsondata'').html(JSON.stringify(updatedJson)); console.log(JSON.stringify(updatedJson)); } })


No hay nada como un "objeto JSON" - JSON es una notación de serialización.

Si desea transformar su objeto javascript en una matriz javascript , ya sea que escriba su propio bucle [¡que no sería tan complejo!], O confíe en el _.toArray() underscore.js _.toArray() :

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


Prueba esto:

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


Simplemente lo haces como

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

DEMO


Suponiendo que tiene un valor como el siguiente

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

Luego puede convertir esto en una matriz de javascript utilizando la siguiente

var arr = []; json = JSON.stringify(eval(''('' + obj + '')'')); //convert to json string arr = $.parseJSON(json); //convert to javascript array

Esto también funciona para convertir json en matrices javascript de múltiples disminuciones.

Ninguno de los otros métodos en esta página parecía funcionar completamente para mí cuando se trabaja con cadenas codificadas con php json, excepto el método que menciono aquí.


Usando JavaScript sin formato, suponga que tiene:

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

Podrías obtener los valores con:

Object.keys(j).map(function(_) { return j[_]; })

Salida:

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


var data = []; data = {{ jdata|safe }}; //parse through js var i = 0 ; for (i=0;i<data.length;i++){ data[i] = data[i].value; }


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]; } }

DEMO


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]); }

Espero que esto es lo que buscas!


var obj = {"0":"1","1":"2","2":"3","3":"4"}; var vals = Object.values(obj); console.log(vals); //["1", "2", "3", "4"]

Otra alternativa a la pregunta

var vals = Object.values(JSON.parse(obj)); //where json needs to be parsed


var obj= {"0":"1", "1":"2", "2":"3", "3":"4"}; var arr = []; var keys = window.jQuery.map(obj, function(value, key) { arr.splice(key, 0, value); console.log(arr); });