我有一个像:
这样的数组 [[0,1,2,3][0,1,2,3,][0,1,2,3][0,1,2,3]]
我想切片嵌套数组以仅保留前两个元素。
我在lodash中使用此代码:
for (i = 0; i < data.length; ++i) {
data[i] = _.slice(data[i], [start=0], [end=2]);
}
但这并不是非常感觉。你会怎么做?
答案 0 :(得分:1)
你可以这样做:
var data = [[0,1,2,3],[0,1,2,3,],[0,1,2,3],[0,1,2,3]];
_.invoke(data, 'slice', 0, 2);
否则,如果你想使用map:
data.map(function(item) { return item.slice(0, 2); }); // pure js solution
_.map(data, function(item) { return _.slice(item, 0, 2); } );
答案 1 :(得分:1)
这就是我要做的事情:
var collection = [
[ 0, 1, 2, 3 ],
[ 0, 1, 2, 3 ],
[ 0, 1, 2, 3 ],
[ 0, 1, 2, 3 ]
];
_.map(collection, _.ary(_.partialRight(_.take, 2), 1));
// → [ [ 0, 1 ], [ 0, 1 ], [ 0, 1 ], [ 0, 1 ] ]
这是发生了什么:
2
部分应用于take()
函数作为第二个参数。第一个参数将是集合项。n
项。