2017-08-29 97 views
-3

我想要實現的是取數組中的前23個值(成爲數組B),其中包含92個值(數組A)並將這23個值放入它們自己的數組中。但它必須從字面上採取前23個值,所以陣列A將剩下69個值。那麼我就能把另外23個值以及它們卻到自己的數組(數組C)等等...如何獲取數組中的第一個數值?

對於一個小規模的例子:

取3個值從數組

[ 320, 
    272, 
    412, 
    36, 
    36, 
    36, 
    31, 
    30, 
    30, 
    387, 
    338, 
    511] 

成爲... 數組b

[ 320, 
272, 
412] 

陣列中的9個值

[36, 
    36, 
    36, 
    31, 
    30, 
    30, 
    387, 
    338, 
    511] 

我試過lodash _.take但它沒有字面上採取值從數組,因爲它留下它在數組中。

+0

看來你已經知道如何創建數組B.現在你只需要從數組A中刪除前n個值。這應該很容易googleable。 – JJJ

+0

你看過任何數組函數嗎?如果沒有看看https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/prototype – Nope

+0

Array.splice是你正在尋找的。 – tilz0R

回答

2

你,如果你正在使用lodash可以使用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);

0

,您可以使用_.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);
<script src="https://cdn.jsdelivr.net/lodash/4.17.4/lodash.min.js"></script>

0

這裏你去:

var arrayB = arrayA.slice(1, 24); 
arrayA = arrayA.slice(24, 93); 
0

爲什麼要銷燬原始數組?這可能會相當緩慢。 YPU可以把你的陣列爲2D之一:

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做

result[0] 

...等等。

0

方法1-用拼接方法 -

let array1 = [ 320, 
    272, 
    412, 
    36, 
    36, 
    36, 
    31, 
    30, 
    30, 
    387, 
    338, 
    511]; 

    var array2 = array1.splice(0, a.indexOf(412)); 

要從數組2刪除 '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] 
相關問題