我正在尝试拆分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
。在此先感谢您的帮助!
答案 0 :(得分:6)
您可以使用Array#slice
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;
答案 1 :(得分:0)
使用array.slice(),您可以给出一个开头和结尾,以回答您的假设问题:
array1 = array.slice(0, 25);
答案 2 :(得分:0)
只需使用slice
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;
答案 3 :(得分:0)
拼接数组:
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;
答案 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)