拆分数组分为两部分

时间:2016-11-02 13:22:11

标签: javascript jquery arrays

我正在尝试拆分n个元素的数组(数组元素的数量总是可以分成2个),例如我有一个包含20个元素的数组,现在我可以拆分the first 10 elements and show it但是我不知道如何拆分下面的10个元素,这里是我的代码,或多或少地看到我正在尝试做的事情:

var array = "1, 5, 4, 3, 2, 6, 7, 8, 6, 55, 4, 33, 67, 7, 65, 45, 34, 32, 12, 23";
var array1 = [];
var array2 = [];

$(document).ready(function() {
  $('#btn').click(function() {
    magic();
  });
});

function magic() {
  var split;
  var data = array.split(",");
  var total = data.length;

  for (var i = 0; i < total / 2; i++) {
    array1.push(data[i]);
  }

  $('#a1').text(array1);

}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="btn">Magic!</button>

<div>
  <h4>Array 1</h4>
  <p id="a1"></p>
</div>

<hr>

<div>
  <h4>Array 1</h4>
  <p id="a2"></p>
</div>

如果你看到我的代码,那么数组2元素必须是:

  

4,33,67,7,65,45,34,32,12,23

我该怎么办呢?换句话说,如果我有50个元素,我想用前25个元素填充array 1,用其余元素填充array 2。在此先感谢您的帮助!

6 个答案:

答案 0 :(得分:6)

您可以使用Array#slice

&#13;
&#13;
var array = "1, 5, 4, 3, 2, 6, 7, 8, 6, 55, 4, 33, 67, 7, 65, 45, 34, 32, 12, 23";

$(document).ready(function() {
  $('#btn').click(function() {
    magic();
  });
});

function magic() {
  $('#a1').text(array.slice(0, array.length / 2));
  $('#a2').text(array.slice(array.length / 2));
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="btn">Magic!</button>
<div>
  <h4>Array 1</h4>
  <p id="a1"></p>
</div>
<hr>
<div>
  <h4>Array 1</h4>
  <p id="a2"></p>
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

使用array.slice(),您可以给出一个开头和结尾,以回答您的假设问题:

array1 = array.slice(0, 25);

答案 2 :(得分:0)

只需使用slice

即可

&#13;
&#13;
var array = "1, 5, 4, 3, 2, 6, 7, 8, 6, 55, 4, 33, 67, 7, 65, 45, 34, 32, 12, 23";
var array1 = [];
var array2 = [];

$(document).ready(function() {
  $('#btn').click(function() {
    magic();
  });
});

function magic() {
  var split;
  var data = array.split(",");
  var total = data.length;

  array1 = data.slice(0, total / 2);

  array2 = data.slice(total / 2);

  $('#a1').text(array1);
  $('#a2').text(array2);
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="btn">Magic!</button>

<div>
  <h4>Array 1</h4>
  <p id="a1"></p>
</div>

<hr>

<div>
  <h4>Array 1</h4>
  <p id="a2"></p>
</div>
&#13;
&#13;
&#13;

答案 3 :(得分:0)

拼接数组:

&#13;
&#13;
var myArr = ["1", "5", "4", "3", "2", "6", "7", "8", "6", "55", "4", "33", "67", "7", "65", "45", "34", "32", "12", "23"];
function splitArr(arr2) {
  var arr1 = arr2.splice(0,Math.floor(arr2.length/2))
  return [arr1,arr2];
}
console.log(splitArr(myArr))
&#13;
&#13;
&#13;

答案 4 :(得分:0)

在javascript中使用.slice()

  

slice()方法返回数组部分的浅表副本   到从开始到结束选择的新数组对象(不包括结束)。   原始数组不会被修改。

var str = "1, 5, 4, 3, 2, 6, 7, 8, 6, 55, 4, 33, 67, 7, 65, 45, 34, 32, 12, 23";
var array = str.split(',');
var len = (array.length) / 2;

var array1 = array.slice(0, len);
var array2 = array.slice(len);

console.log(array1);
console.log(array2);

答案 5 :(得分:-1)

您可以使用JS切片:

a = array.slice(0,10);
b = array.slice(10,20);

您也可以使用lodash chunk方法。

相关问题