2016-12-09 3 views
-2

У меня есть функция, которая должна добавить элемент в начале массива. Но я всегда получаю неопределенный элемент в конце моего массива. Я надеюсь, что кто-то может помочь мне :)JavaScript Array undefined element

function putToFirst(e){ 
    var array = []; 
    array.push(e); 
    this.arrayList = array.concat(this.arrayList); 
} 

EDIT:

class List { 

    constructor() { 
    super() 
    this.arrayList = []; 
    } 

    putToFirst(e) { 
     this.ArrayList.unshift(e); 
} 
} 

тот класс. Я создаю новый объект из списка классов и вызываю функцию putToFirst для этого объекта. Но я всегда получаю массив с «undefinded» в конце

+5

Является ли '[] .unshift()' сломанным в вашем браузере ?! – lonesomeday

+2

Что такое 'e'? Что это? Попробуйте предоставить [mcve]. – Quentin

+0

Обратите внимание, что если вы собираетесь с 'unshift' на' this.arrayList', вы будете мутировать массив вместо замены его новым. – user3297291

ответ

-4
this.arraylist is wrong this represent a current object you are not currently using any class in above code you just need to change 

    function putToFirst(e){ 
    var array = []; 
    var arrayList=[]; 
    array.push(e); 
    arrayList = array.concat(arrayList); 
    console.log(arrayList); 
} 
+0

Я бы не предполагал, что 'this.arrayList' ошибочен. Однако ваша функция каждый раз создает новый и пустой 'arrayList'. Это не имеет ничего общего с добавлением новых элементов в начало массива. – Xufox

+0

спасибо, что показал мою ошибку –