Я пытаюсь преобразовать двухмерную антенную решетку в строку для хранения ее в массиве 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, вся 'строка' уменьшается до, подразумевая с другой стороны существуют все еще массивы.
в чем дело? Конечно, вы можете сказать, что у вас на входе, чего вы ожидали, и какой нежелательный вывод?
По крайней мере, если массив
действительно массив, то не стоит использовать для...в цикле
. Это для объектов. Просто используйте
for (var i=0, l=array.length; i<l; i++){
if (array[i] instanceof Array){
array[i] = array[i].join("`");
}
}
Похоже, ваш код отлично работает, тестируясь в 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);
В Джаваскрипте нет двухмерных массивов. У него только неровные массивы. Ваш код работает на меня для соответствующего ввода:
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
Не могли бы вы показать нам, какой ввод вы используете и какой вывод вы получаете?
.