2016-02-29 4 views
0

У меня есть функция, которая удаляет элементы из массива, есть ли способ получить начальное содержимое массива, когда в нем нет элементов? я знаю, что я должен использоватьПолучить исходное содержимое массива

if(array.length=0){ 
} 

, но он бьет меня, что положить в фигурной braces.I've пытался создать массив, который дублирует первый, а затем, после реализации функции присвоения моего пустого массива к дублированным один, но он не работает

+2

Какое содержимое массива * if * в нем нет элементов? –

+0

Если в массиве нет элементов, нет контента ... правильно? –

+0

В чем ваш вопрос? Что вы подразумеваете под начальным значением? –

ответ

0

Я предполагаю, что вы можете сделать, это определить вар поверх

function var car =""; 
if(array.length =0){ 
// do your operation cars = new Array("Saab", "Volvo", "BMW") 
    enter code here; 
}` 
// you can get get data console.log(cars); 
0

Попробуйте это:

var copyOfArray = array.slice(0); //Returns a copy of all the elements in array 

if(!array.length){ 
    array = copyOfArray.slice(0); 
} 

Если массив содержит объекты, которые используют следующий метод, чтобы получить значения только (не функции):

var clonedArray = JSON.parse(JSON.stringify(nodesArray)); 
+0

Я пробовал это, но кажется что в то время, когда первый массив изменяется, назначение его также меняется, а в конце функции они оба пустые – Igor

+0

Простите об этом. Я только что исправил свой ответ. –

+0

Кажется, что это работает! Осталось только одна проблема, но это немного не по теме, большое спасибо, так или иначе) – Igor

0

Если вы хотите получить копию массива вы должны сделать так называемую глубокую копию.

var a = [11,22,33,44,55,66,77,88,99]; 
var a_copy = a; 
var a_backup = []; 
console.log("original length = " + a.length) 
for(var i = 0;i<a.length;i++){ 
    a_backup[i] = a[i]; 
} 
for(var i = 0;i<a.length;i++){ 
    a[i] = undefined; 
} 
console.log("original = " + a.join(",")) 
console.log("copy  = " + a_copy.join(",")) 
console.log("backup = " + a_backup.join(",")) 
console.log("original length now = " + a.length) 
for(var i = 0;i<a_backup.length;i++){ 
    a[i] = a_backup[i]; 
} 
console.log("restored = " + a.join(",")) 

Это также зависит от того, как вы удалили записи. Если вы делали так, как я делал, длина остается прежней, но есть и другие методы, которые изменяют длину самого массива, вам нужно это проверить.