Попытка присоединиться к двухмерной антенной решетке в JavaScript

Я пытаюсь преобразовать двухмерную антенную решетку в строку для хранения ее в массиве localStorage. Однако существует что-то не так с этим кодом, который я не могу определить:

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

У кого-либо есть идея, что я делаю неправильно?

Что касается что случилось, многомерным массивом я имею в виду массив [0] [1] и т.д. Когда введено в localStorage, вся 'строка' уменьшается до, подразумевая с другой стороны существуют все еще массивы.

13
задан Arda Xi 6 January 2010 в 21:10
поделиться

3 ответа

в чем дело? Конечно, вы можете сказать, что у вас на входе, чего вы ожидали, и какой нежелательный вывод?

По крайней мере, если массив действительно массив, то не стоит использовать для...в цикле . Это для объектов. Просто используйте

for (var i=0, l=array.length; i<l; i++){
    if (array[i] instanceof Array){
        array[i] = array[i].join("`");
    }
}
5
ответ дан 1 December 2019 в 21:38
поделиться

Похоже, ваш код отлично работает, тестируясь в Firefox.

Он не работает в определенном браузере?

var array = [
["a","b"],
["c","d","e"]];
for(x in array) {
    if(array[x] instanceof Array) {
        array[x] = array[x].join("`");
    }
}
var string = array.join("@");
console.log(string);
0
ответ дан 1 December 2019 в 21:38
поделиться

В Джаваскрипте нет двухмерных массивов. У него только неровные массивы. Ваш код работает на меня для соответствующего ввода:

array = [[1,2],[3,4]];
for(x in array) {
    if(array[x] instanceof Array) {
        array[x] = array[x].join("`");
    }
}
var string = array.join("@");
alert(string);

Выход:

1`2@3`4

Не могли бы вы показать нам, какой ввод вы используете и какой вывод вы получаете?

.
1
ответ дан 1 December 2019 в 21:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: