2016-03-02 2 views
1

Я пытаюсь использовать .concat() для конкатенации двух объектов, но он возвращаетJavascript CONCAT не работает на JSON объектов

tiles.concat не является функцией

Это код (угловая приложение и CoffeeScript):

$scope.tiles = new UI(); 
    $scope.tiles.loadUITiles(); 
    console.log($scope.tiles); 

    $scope.rooms = new RoomData; 
    $scope.rooms.load(); 

    buildSavedRoomsScope = (tiles,rooms) -> 
    console.log "tiles: " + tiles + " ||| Rooms:" + rooms 
    savedRooms = tiles.concat(rooms) 
    i = 0 
    while i < savedRooms.length 
     room = savedRooms[i] 
     room.saved = !room.hasOwnProperty('saved') 
     room.uid = (if room.saved then 'saved-' else 'notSaved-') + room.id 
     i++ 
    room 


    $scope.savedRooms = buildSavedRoomsScope($scope.tiles, $scope.rooms) 
    console.log $scope.savedRooms 

Я не понимаю, что я делаю не так, как это выглядит для меня так же, как this

EDIT

Так же, как в примере, мои данные JSON является массив объекта (такую ​​же структуру, как в вышеприведенном примере)

+0

Что такое «плитка» в этот конкретный момент ...? – deceze

+0

плитки: [объект Объект] ||| Номера: [object Object] – Nick

+0

Это не очень помогает. Сделайте 'console.log плитки', чтобы увидеть, что именно. – deceze

ответ

3

Да, не существует никакого метода «CONCAT» для объектов, существует только в Array.prototype. Вместо этого вы можете использовать метод angle.extend. См. Doc: https://docs.angularjs.org/api/ng/function/angular.extend

+0

См. Мой отредактированный вопрос – Nick

+0

ok, я просто использую angular.extend. благодаря – Nick