如何获取数组中的第一个数值?

时间:2017-08-29 15:48:48

标签: javascript arrays

我想要实现的是获取包含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,但它并不是从数组中取出值,因为它将它留在数组中。

5 个答案:

答案 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;
&#13;
&#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]