Javascript 数组中的对象
我有多个如下所示的对象,我想知道将它们全部放在一个数组中的正确语法是什么。我还想知道如何正确地循环使用所有阵列Javascript 数组中的对象,javascript,jquery,arrays,Javascript,Jquery,Arrays,我有多个如下所示的对象,我想知道将它们全部放在一个数组中的正确语法是什么。我还想知道如何正确地循环使用所有阵列 var verbMap = [ { infinitive: "gehen", thirdPres: "geht", thirdPast: "ging", aux: "ist", pastPart: "gegangen", english: "go" }, {
var verbMap = [
{
infinitive: "gehen",
thirdPres: "geht",
thirdPast: "ging",
aux: "ist",
pastPart: "gegangen",
english: "go"
},
{
infinitive: "gelingen",
thirdPres: "gelingt",
thirdPast: "gelang",
aux: "ist",
pastPart: "gelungen",
english: "succeed"
}
];
我知道循环使用上述阵列的正确方法是:
for(v in verbMap){
for(p in verbMap[v]){
}
}
如果我想在包含多个数组(如
verbMap
)的较大数组中循环,正确的方法是什么?只需将verbMap
数组放在另一个数组中即可
var verbMaps=[verbMap1,verbMap2…]
要理解的关键是,您的verbMap是一个对象文本数组。只用
for(verbMap中的k).
对于对象文字
循环通过数组的正确方法如下
for (var i = 0; i < verbMaps.length; i++) {
var currentVerbMap = verbMaps[i];
for (var j = 0; j < currentVerbMap.length; j++) {
var currentHash = currentVerbMap[j];
for (var k in currentHash) {
console.log(k, currentHash[k];
}
}
}
for(var i=0;i
只需将verbMap
数组放在另一个数组中即可
var verbMaps=[verbMap1,verbMap2…]
要理解的关键是,您的verbMap是一个对象文本数组
for(verbMap中的k).
对于对象文字
循环通过数组的正确方法如下
for (var i = 0; i < verbMaps.length; i++) {
var currentVerbMap = verbMaps[i];
for (var j = 0; j < currentVerbMap.length; j++) {
var currentHash = currentVerbMap[j];
for (var k in currentHash) {
console.log(k, currentHash[k];
}
}
}
for(var i=0;i
您的数组不包含其他数组。它包含对象。您可以尝试在其中循环
for(var i = 0; i < verbMap.length; i++)
{
var obj = verbMap[i];
alert("Object #"+ i " - infinitive: " + obj.infinitive);
}
for(变量i=0;i
您的数组不包含其他数组。它包含对象。您可以尝试在其中循环
for(var i = 0; i < verbMap.length; i++)
{
var obj = verbMap[i];
alert("Object #"+ i " - infinitive: " + obj.infinitive);
}
for(变量i=0;i
以下函数输出(可能)作为参数给定的无限数组中的每个值
function printInfiniteArray(value){
if (value instanceof Array){
for(i=0;i<value.length;i++){
printInfiniteArray(value[i]);
}
} else {
console.log(value);
}
}
函数printInfiniteArray(值){
if(数组的值实例){
对于(i=0;i,以下函数输出作为参数给定的(可能)无限数组中的每个值
function printInfiniteArray(value){
if (value instanceof Array){
for(i=0;i<value.length;i++){
printInfiniteArray(value[i]);
}
} else {
console.log(value);
}
}
函数printInfiniteArray(值){
if(数组的值实例){
对于(i=0;i,可以像对待任何其他javascript对象一样对待数组
var arrayOfArrays = [];
var array1 = ["cows", "horses", "chicken"];
var array2 = ["moo", "neigh", "cock-adoodle-doo"];
arrayOfArrays[0] = array1;
arrayOfArrays[1] = array2;
您还可以使用javascript的文字符号创建多维数组:
var arrayOfArrays = [ ["meat", "veggies"], ["mmmm!", "yuck!"] ];
要在数组数组中循环,需要使用嵌套for循环,如下所示:
for (var i = 0; i < arrayOfArrays.length; i++) {
var myArray = arrayOfArrays[i];
for (var j = 0; j < myArray.length; j++) {
var myData = myArray[0]; // = arrayOfArrays[0][0];
}
}
for(var i=0;i
不要在…中使用!!!
这不是它的用途。在javascript中,for…In可能会有一些不需要的行为。有关更多详细信息,请参阅。您可以像对待任何其他javascript对象一样对待数组
var arrayOfArrays = [];
var array1 = ["cows", "horses", "chicken"];
var array2 = ["moo", "neigh", "cock-adoodle-doo"];
arrayOfArrays[0] = array1;
arrayOfArrays[1] = array2;
您还可以使用javascript的文字符号创建多维数组:
var arrayOfArrays = [ ["meat", "veggies"], ["mmmm!", "yuck!"] ];
要在数组数组中循环,需要使用嵌套for循环,如下所示:
for (var i = 0; i < arrayOfArrays.length; i++) {
var myArray = arrayOfArrays[i];
for (var j = 0; j < myArray.length; j++) {
var myData = myArray[0]; // = arrayOfArrays[0][0];
}
}
for(var i=0;i
不要在…中使用!!!
这不是它的用途。在javascript中,for…In可能会有一些不需要的行为。有关更多详细信息,请参阅。您可以使用循环遍历数组或对象,而无需检查它是哪一个。一个简单的递归函数,在嵌套结构中循环遍历键值对,而不知道确切的深度:
var walk = function(o) {
$.each(o, function(key, value) {
if (typeof value == 'object') {
walk(value);
} else {
console.log(key, value);
}
});
}
您可以使用循环遍历数组或对象,而不必检查它是哪一个。一个简单的递归函数,用于循环遍历嵌套结构中的键值对,而不知道确切的深度:
var walk = function(o) {
$.each(o, function(key, value) {
if (typeof value == 'object') {
walk(value);
} else {
console.log(key, value);
}
});
}
请注意,这些内部“数组”实际上是对象({}
),而不是数组([]
)。在JavaScript中,一切都是对象;-)@Zach L:是的,但不是一切都是数组:)对数组使用普通的循环,对对象使用循环。在第一次学习JavaScript时,我还混淆了普通对象{
是一个关联数组(例如在php中),因为您可以使用相同的语法:someObject[“item”]
。与其将其视为关联数组,不如将其视为哈希表。数组是有序的,而对象属性不是有序的。请注意,这些内部“数组”实际上是对象({}
),而不是数组([]
)。在JavaScript中,所有的东西都是一个对象;-)@Zach L:是的,但不是所有的东西都是数组:)对数组使用普通的循环,对对象使用循环(比如在php中)因为可以使用相同的语法:someObject[“item”]
。与其将其视为关联数组,不如将其视为哈希表。由于数组是有序的,而对象属性不是有序的,因此它更有意义。在javascript中,不要将for…in与数组一起使用。在javascript中,不要将for…in与数组一起使用。如果我想写一个表,比如:你知道我会怎么做吗@Andrew首先将外部循环更改为使用var i;..
,如我在回答中所述。如果我想将其写出一个表格,如下所示:你知道我将如何做吗?@Andrew首先将外部循环更改为使用var i;..