2016-12-21 8 views
0

Как добавить элементы в массив к другому массиву с помощью Ramdajs с помощью одного оператора строки?Как добавить элементы в массив к другому массиву?

state = { 
    items:[10,11,] 
}; 

newItems = [1,2,3,4]; 

state = { 
    ...state, 
    taggable_friends: R.append(action.payload, state.taggable_friends) 
}; 

//now state is [10,11,[1,2,3,4]], but I want [10,11,1,2,3,4] 

ответ

5

Ramda в append произведении "толкая" 1-й из параметров в клон 2 пар, который должен быть массивом:

R.append('tests', ['write', 'more']); //=> ['write', 'more', 'tests'] 
R.append(['tests'], ['write', 'more']); //=> ['write', 'more', ['tests']] 

В вашем случае:

R.append([1,2,3,4], [10,11]); // => [10,11,[1,2,3,4]] 

Вместо используйте RamdaJS и измените порядок параметров:

R.concat(state.taggable_friends, action.payload) 
2

Если вы хотите использовать только основные JavaScript вы можете сделать это:

return { 
    ...state, 
    taggable_friends: [...state.taggable_friends, action.payload], 
}