en JavaScript una matriz clave de valor se almacena como un objeto. Hay cosas como arreglos en javascript, pero también se consideran objetos, compruebe la respuesta de este tipo: What is the difference between an array and an object?
Las matrices se suelen ver utilizando la sintaxis de corchetes cuadrados y los objetos (matrices "clave => valor") usando rizado sintaxis del paréntesis, aunque puede acceder y establecer las propiedades del objeto utilizando la sintaxis del paréntesis cuadrado como lo ha demostrado Alexey Romanov.
Las matrices en javascript se usan normalmente solo con teclas numéricas automáticas, pero los objetos javascript pueden contener pares de valores clave, funciones e incluso otros objetos.
Arreglo simple eg.
$(document).ready(function(){
var countries = ['Canada','Us','France','Italy'];
console.log('I am from '+countries[0]);
$.each(countries, function(key, value) {
console.log(key, value);
});
});
salida -
0 "Canadá"
1 "nosotros"
2 "Francia"
3 "Italia"
vemos arriba que nosotros puede recorrer una matriz numérica usando la función jQuery.each y acceder a la información fuera del bucle usando el cuadrado corchetes con teclas numéricas.
Simple Object (JSON)
$(document).ready(function(){
var person = {
name: "James",
occupation: "programmer",
height: {
feet: 6,
inches: 1
},
}
console.log("My name is "+person.name+" and I am a "+person.height.feet+" ft "+person.height.inches+" "+person.occupation);
$.each(person, function(key, value) {
console.log(key, value);
});
});
salida -
Mi nombre es James y yo soy un 6 pies 1 programador
nombre de James
ocupación programador
altura Objeto {pies: 6, pulgadas: 1}
En un lenguaje como php esto se consideraría una matriz multidimensional con pares de valores clave o una matriz dentro de una matriz. Supongo que, debido a que preguntaste cómo recorrer un conjunto de valores de clave, querrás saber cómo obtener un objeto (clave => matriz de valores) como el objeto de persona de arriba para tener, digamos, más de una persona.
Bueno, ahora que sabemos que las matrices de JavaScript se utilizan normalmente para la indexación numérica y los objetos con mayor flexibilidad para la indexación asociativa, vamos a utilizar juntos para crear una matriz de objetos que puede recorrer, al igual que -
matriz JSON (matriz de objetos) -
$(document).ready(function(){
var people = [
{
name: "James",
occupation: "programmer",
height: {
feet: 6,
inches: 1
}
}, {
name: "Peter",
occupation: "designer",
height: {
feet: 4,
inches: 10
}
}, {
name: "Joshua",
occupation: "CEO",
height: {
feet: 5,
inches: 11
}
}
];
console.log("My name is "+people[2].name+" and I am a "+people[2].height.feet+" ft "+people[2].height.inches+" "+people[2].occupation+"\n");
$.each(people, function(key, person) {
console.log("My name is "+person.name+" and I am a "+person.height.feet+" ft "+person.height.inches+" "+person.occupation+"\n");
});
});
salida -
Mi nombre es Joshua y yo soy un 5 pies 11 CEO
Mi nombre es James y yo soy un 6 pies 1 programador
Mi nombre es Peter y yo soy un 4 pies 10 diseñador
Mi nombre es Joshua y yo soy un CEO 5 pies 11
Nota que fuera del ciclo tengo que usar la sintaxis de corchetes con una clave numérica porque ahora se trata de una matriz de objetos indexada numéricamente y, por supuesto, dentro del bucle está implícita la clave numérica.
Un hash iterado con $ .each no funcionará? Esto es más o menos estándar. – kgiannakakis
hash? cualquier muestra de código? –
¿Por qué en el mundo le gustaría usar jQuery para esta simple tarea básica, kgiannakakis? –