Lodash:没有最后一个元素的数组,没有变异

时间:2016-04-01 11:50:46

标签: javascript immutability lodash

我正在寻找一种方法来检索没有最后一个元素的数组,并且不会发生变异。

  • _.remove确实改变了数组并按值搜索而不是索引(即使它是asked there
  • _.without按值搜索,而不是搜索

我有_.filter(array, function(el, i) { return i != array.length -1});但是siouf,不是非常明确的,它需要将数组存储在某个地方。

由于

3 个答案:

答案 0 :(得分:3)

我一直在寻找类似“butlast”的东西,但我找到了initial,它完成了这项工作:

var xs = [1, 2, 3, 4];

var xs2 = _.initial(xs);

console.log(xs, xs2);  // [1, 2, 3, 4] [1, 2, 3]

答案 1 :(得分:3)

Array.prototype.slice可能会对您有所帮助。

var array = [1,2,3,4,5];
var newArr = array.slice(0, -1);

console.log(array); // [1, 2, 3, 4, 5]
console.log(newArr); // [1, 2, 3, 4]

当然,您也可以使用lodash

进行此操作

由于

答案 2 :(得分:1)

试试这个:

_.take(arr, arr.length-1)