我想要实现的是获取包含92个值(数组A )的数组的前23个值(变为数组B )并放入将那23个值放入自己的数组中。但它必须字面取前23个值,因此数组A 将保留69个值。然后我可以再获取23个值,但是它们会成为自己的数组(数组C),依此类推......
对于小规模的例子:
从数组A中取3个值
[ 320,
272,
412,
36,
36,
36,
31,
30,
30,
387,
338,
511]
成为...... 数组B
[ 320,
272,
412]
数组A有9个值
[36,
36,
36,
31,
30,
30,
387,
338,
511]
我已经尝试了lodash _.take
,但它并不是从数组中取出值,因为它将它留在数组中。
答案 0 :(得分:2)
您可以使用Array.splice()
let a = [ 320,
272,
412,
36,
36,
36,
31,
30,
30,
387,
338,
511];
let b = a.splice(0, 3);
console.log(b);
console.log(a);
答案 1 :(得分:0)
如果您正在使用lodash,则可以使用_.remove
:
var A = [1, 2, 3, 4, 5, 6];
var B = _.remove(A, function(value, index, array) {
return index < 3;
});
console.log(B);
console.log(A);
&#13;
<script src="https://cdn.jsdelivr.net/lodash/4.17.4/lodash.min.js"></script>
&#13;
答案 2 :(得分:0)
你走了:
var arrayB = arrayA.slice(1, 24);
arrayA = arrayA.slice(24, 93);
答案 3 :(得分:0)
为什么要破坏原始阵列?这可能会非常缓慢。 Ypu可以将你的阵列变成2d:
currentPlayer
所以结果如下:
var arr = Array(500).fill(230);//whatever input
var result = [], chunk = 23;
for(var i = 0; i < arr.length - chunk +1; i+= chunk)
result.push( arr.slice(i, i + chunk) );
采取前23个
[
[...23],
[...23]
...
]
......等等。
答案 4 :(得分:0)
方法1-使用拼接方法 -
let array1 = [ 320,
272,
412,
36,
36,
36,
31,
30,
30,
387,
338,
511];
var array2 = array1.splice(0, a.indexOf(412));
从array2中删除'412':
array2.shift();
Method 2-
Using Lo-dash
For Example-
var array = [1,2,3,4,5,6];
var p1 = _.first(ar, 4);
var p2 = _.rest(ar, 4);
方法3- 使用如上所述的拼接
x = [1,2,3,4,5,6];
y = x.splice(3);
console.log(x); // [1,2,3]
console.log(y.shift()); // [4,5,6]