Javascript JS嵌套数组
哎,, 我试图在JS中创建一个嵌套数组Javascript JS嵌套数组,javascript,arrays,Javascript,Arrays,哎,, 我试图在JS中创建一个嵌套数组 var lines = new Array( "0"= new Array( 0['time']="10:00:00", 0['user']="User1", 0['content']="Line1",
var lines = new Array(
"0"= new Array(
0['time']="10:00:00",
0['user']="User1",
0['content']="Line1",
),
"1"= new Array(
1['time']="20:00:00",
1['user']="User2",
1['content']="Line2",
),
"2"= new Array(
2['time']="30:00:00",
2['user']="User3",
2['content']="Line3",
),
);
Chrome的调试器告诉我,在第一个嵌套数组的末尾有一个来自代码的“意外标记”,看起来您正试图在JavaScript中使用PHP样式的数组。JavaScript数组不像PHP数组那样工作。以下是更可能奏效的方法:
const lines = [
{ time: '10:00:00',
user: 'User1',
content: 'Line1',
},
{ time: '20:00:00',
user: 'User2',
content: 'Line3',
},
{ time: '30:00:00',
user: 'User3',
content: 'Line3',
},
];
为了进一步解释,在JavaScript中创建一个新数组,如下所示:
const myArray = [ 5, 10, 15 ];
alert( myArray[0] );
const myObject = { a: 5, b: 10, c: 15 };
方括号([]
)表示数组的开始和结束,逗号(,
)分隔数组的元素。然后,要访问元素,我们将执行以下操作:
const myArray = [ 5, 10, 15 ];
alert( myArray[0] );
const myObject = { a: 5, b: 10, c: 15 };
…这将给出5
(数组中的第一个或“0”元素)
现在,PHP有关联数组(array('a'=>1,…)
),而JavaScript中没有“关联数组”;而是使用“对象文字”,如下所示:
const myArray = [ 5, 10, 15 ];
alert( myArray[0] );
const myObject = { a: 5, b: 10, c: 15 };
这将创建一个名为a
、b
和c
的新对象,其属性(您可以将它们视为键)。有两种方法可以访问属性:
alert( myObject['b'] );
alert( myObject.b );
在这两种情况下,10
(我们分配给属性b
)的值将被给出
现在回到你的练习。您将看到,在这里我们创建了一个数组([]
),并为它提供了三个元素,每个元素都是一个对象文本({}
)。例如,要访问第一个元素的user
属性,我们将执行以下操作:
alert( lines[0].user ); // => "User1"
编辑:如果要命名外部数组的元素,必须将其更改为对象文字,并且可以像这样嵌套:
const lines = {
one: {
time: '10:00:00',
user: 'User1',
content: 'Line1',
},
two: {
// ...
},
// ...
};
为了清晰起见,我将项目命名为one
,two
,等等,但您可以使用任何您喜欢的值。但是,如果要像示例代码中那样使用数字属性名称-0
、1
、2
,则最好使用另一个数组而不是对象。与PHP不同,JavaScript不允许在数组中使用未定义的填充“间隙”。例如:
const myArr = [1, 2];
myArr[5] = 3;
alert( myArr ); // => [ 1, 2, undefined, undefined, undefined, 3 ];
试试这个
var lines = [ {'time': 'the time', 'user': 'the user', 'content': 'the content'}, {'time': 'the time', 'user': 'the user', 'content': 'the content'}];
一个小的、标准的“眼睛”固定装置
好吧,我认为问题不在于方括号,因为javaScript中的数组可以通过以下任何一种方式声明-
var arr = new Array(element0, element1, ..., elementN);
var arr = Array(element0, element1, ..., elementN);
var arr = [element0, element1, ..., elementN];
有关更可靠的参考资料,请访问此MDN。
在我看来,问题可能是钥匙的选择。
顺便说一句,我是一个初学者,只是从这里和那里学习。如果我弄错了,请纠正我,因为这个问题把我弄糊涂了。这里有一个简单的例子可以解决,告诉你java脚本中边数组中的数组,如果元素是偶数,它将替换为字符串“偶数”,对于奇数,替换为“奇数”
var编号=[
[243, 12, 23, 12, 45, 45, 78, 66, 223, 3],
[34, 2, 1, 553, 23, 4, 66, 23, 4, 55],
[67, 56, 45, 553, 44, 55, 5, 428, 452, 3],
[12, 31, 55, 445, 79, 44, 674, 224, 4, 21],
[4, 2, 3, 52, 13, 51, 44, 1, 67, 5],
[5, 65, 4, 5, 5, 6, 5, 43, 23, 4424],
[74, 532, 6, 7, 35, 17, 89, 43, 43, 66],
[53, 6, 89, 10, 23, 52, 111, 44, 109, 80],
[67, 6, 53, 537, 2, 168, 16, 2, 1, 8],
[76, 7, 9, 6, 3, 73, 77, 100, 56, 100]
];
对于(i=0;i
添加所有嵌套值的简单方法
const order = [
{
"quantity": 1,
"id": "3833085c-864b-47d7-b2a8-e37ef60d3691",
"val": {
"sellable": true,
"out_of_stock": false,
"discount": null,
"pack_size": "50",
"productPrice": 29.5,
"unit_price": 0.59,
"name": "Butter Chilli",
"tamil_name": null,
"id": "3833085c-864b-47d7-b2a8-e37ef60d3691",
"price": 29.5,
"wholesale_price": 29.5,
"stock": 100,
"cost_price": null,
"unit_weight": "50g"
}
},
{
"quantity": 2,
"id": "75fe08ab-8438-42db-bb26-da77568b1fea",
"val": {
"sellable": true,
"out_of_stock": false,
"discount": null,
"pack_size": "15",
"productPrice": 29.25,
"unit_price": 1.95,
"name": "Anchovy (Nethaly) H/O(Small)",
"id": "75fe08ab-8438-42db-bb26-da77568b1fea",
"price": 29.25,
"wholesale_price": 29.25,
"stock": 100,
"unit_weight": "700gm"
}
}
]
const totalAmount = (order) => {
return order.map(product => product.val.price * product.quantity ).reduce((a, b) => a + b, 0).toFixed(2)
}
// Total value is
console.log(totalAmount(order))
88.00
啊,我想我可能把我的PHP和JS搞混了,这是我试图同时学习两者所得到的。是否也可以为父数组命名键?(只是好奇)是的,它是通过执行var行={“0”:{time:“10:00:00”,…},…}
。然后,它就变成了一个对象,您可以使用for(行中的VARI)
Diesal11进行迭代,我已经对我的答案进行了一些澄清。关于Salman的评论,像这样迭代对象的属性是很棘手的,原因有两个:首先,它可能具有与您想要的属性不同的属性,特别是如果您使用像jQuery这样的外部库;第二,属性不会被排序。如果要按特定顺序对它们进行迭代,应该使用数组——对象不是有序数据类型。如何在1个数组中嵌套2(2x3)个数组?我以后如何调用这些嵌套数组中的某些索引(不是内联的)。例如我想要一个名为“tables”的数组,其中有两个数组“number”和“letters”,这两个数组都是多维的。我如何创建它,然后调用第二行第三列中的元素:“字母”?