2013-05-13 3 views
0

Существует ли функциональный способ добавления элемента в массив. Что-то вроде:Функциональное добавление элемента массива

[1,2].prepend(3); // should return [3, 1, 2] 

Пожалуйста, обратите внимание, что ссылка на результат массив возвращается. Причина заключается в том, чтобы иметь возможность делать больше вещей с одним и тем же массивом.

PS: Я спрашиваю о интерфейсе командной строки MongoDB.

PPS: Я ищу способ, которым (A) не будет переключаться порядок массивов (B) ЕСЛИ ВОЗМОЖНО, не заставляйте меня определять какую-либо пользовательскую функцию.

+1

Существует не существующая функция exa но вы можете легко построить его. –

ответ

1

Там нет существующей функции делать все это, но вы можете добавить его:

Object.defineProperty(Array.prototype, "prepend", { 
    enumerable: false, 
    configurable: false, 
    writable: false, 
    value: function(e) { 
    this.unshift(e); 
    return this; 
} 
}); 

Тогда

[1,2].prepend(3) 

вернется [3, 1, 2]

0

Вы ищете unshift().

a = [1,2] 
a.unshift(3) 

Но будьте осторожны, не используйте [1,2].unshift(3) в качестве значения, если вам это нужно сделать функциональный

(function (a) { a.unshift(3); return a; })([1,2]) 
+2

Вы не читали весь вопрос, я думаю. –

+1

unshift не возвращает массив, но элемент – viebel

2

Это должно решить вашу проблему:

[3].concat([1,2])

+0

Я не могу переключить массивы. – BreakPhreak

+0

Почему вы не можете переключиться? – viebel

0
function cram(myArray):Array { 
    myArray.unshift(3); 
    // 3,1,2 
    return myArray 
} 
0

Я думаю, что unshift это функция

a = [1,2] 
[1, 2] 
a.unshift(3) 
a 
[3, 1, 2] 

Вам понадобится обертка с возвратом длины нового массива. Если вам требуется вернуть массив

Ссылка на doc

Смежные вопросы