7

我正在尝试获取 JavaScript 数组中所有元素的列表,但我注意到 usingarray.toString并不总是显示数组的所有内容,即使数组的某些元素已被初始化。有没有办法在 JavaScript 中打印数组的每个元素以及每个元素的相应坐标?我想找到一种方法来打印已在数组中定义的所有坐标的列表,以及每个坐标的相应值。

http://jsfiddle.net/GwgDN/3/

var coordinates = [];
coordinates[[0, 0, 3, 5]] = "Hello World";

coordinates[[0, 0, 3]] = "Hello World1";

console.log(coordinates[[0, 0, 3]]);
console.log(coordinates[[0, 0, 3, 5]]);
console.log(coordinates.toString()); //this doesn't print anything at all, despite the fact that some elements in this array are defined
4

5 回答 5

11

实际上,当您使用坐标[[0, 0, 3]] 时,这意味着以 [0, 0, 3] 作为键的坐标对象。它不会将元素推送到数组,而是将属性附加到对象。所以使用循环对象的这条线。有关循环对象属性的其他方法,请参见此内容

Object.keys(coordinates).forEach(function(key) {
    console.log(key, coordinates[key]);
});

http://jsfiddle.net/GwgDN/17/

于 2013-03-12T05:55:00.670 回答
3

使用类型“对象”而不是“数组”作为坐标

var coordinates = {};
coordinates[[0, 0, 3, 5]] = "Hello World";

coordinates[[0, 0, 3]] = "Hello World1";

console.log(coordinates[[0, 0, 3]]);
console.log(coordinates[[0, 0, 3, 5]]);
console.log(JSON.stringify(coordinates));

http://jsfiddle.net/5eeHy/

于 2013-03-12T05:50:39.503 回答
1
for (i=0;i<coordinates.length;i++)
{
document.write(coordinates[i] + "<br >");
}
于 2013-03-12T05:43:11.833 回答
1

使用 join 函数获取数组的所有元素。使用以下代码

for (var i in coordinates)
{
    if( typeof coordinates[i] == 'string' ){
        console.log( coordinates[i] + "<br >");
    }
}
于 2013-03-12T05:44:07.620 回答
0

查看调试器中的坐标,您将看到您已经设置了对象坐标的属性 [0,0,3,5] 和 [0,0,3]。也就是说,虽然坐标是一个数组,但您并没有将它用作数组。

于 2013-03-12T05:44:21.353 回答