试图在Javascript中加入二维数组

Ard*_* Xi 13 javascript arrays implode multidimensional-array

我正在尝试将二维数组转换为字符串,以便将其存储在localStorage数组中.但是,我无法识别的代码有问题:

for(x in array) {
    if(array[x] instanceof Array) {
        array[x] = array[x].join("`");
    }
}
var string = array.join("@");
localStorage[key] = string;
Run Code Online (Sandbox Code Playgroud)

有谁知道我做错了什么?

至于什么是错的,通过多维数组我的意思是数组[0] [1]等.当输入到localStorage时,所有'字符串'都被缩减为@,暗示@的另一边还有数组.

Jon*_*ker 17

现在这很简单:

[[1,2],[3,4]].map(e => e.join(':')).join(';'); // 1:2;3:4
Run Code Online (Sandbox Code Playgroud)


Rol*_*man 5

什么是错的?当然,你可以说你的输入是什么,你期望什么,以及不希望的输出是什么?

至少,如果array确实是一个数组,你不应该使用for..in loop.这是对象.只需使用一个

for (var i=0, l=array.length; i<l; i++){
    if (array[i] instanceof Array){
        array[i] = array[i].join("`");
    }
}
Run Code Online (Sandbox Code Playgroud)

  • for..in循环可以用于Arrays,它不仅适用于对象......只要你使用'hasOwnProperty'. (4认同)