Javascript 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",

哎,, 我试图在JS中创建一个嵌套数组

    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”,这两个数组都是多维的。我如何创建它,然后调用第二行第三列中的元素:“字母”?