我有一个值为[A,B,C,D,E.....]
的javascript数组,我需要使用以下语法进行拆分:
[ [A, B], [C, D], [E, F] ]
依此类推(它总是一对)。
所以它应该是一个返回字符串的循环。
我试图这样做,这几乎是我想要的:
text = '['+array[0]+','+array[1]+']';
for (index = 2; index < array.length; index++) {
text += '['+array[index]+','+array[index+1]+']';
console.log(text);
}
我得到了
[10:00,15:45][18:30,20:00]
[10:00,15:45][18:30,20:00][20:00,undefined]
相反,我只需要得到这个:
[10:00,15:45][18:30,20:00]
答案 0 :(得分:3)
可以尝试将文本设为实际数组并推送对,如此
var orig=['A','B','C','D','E','F'];
var text=[];
for (index = 0; index < orig.length-1; index+=2) {
text.push([orig[index],orig[index+1]]);
console.log(JSON.stringify(text));
}
答案 1 :(得分:0)
以下内容:
var groupArray = function(arr){
var groupedArray = [];
for(var i = 0, len = arr.length; i < len; i += 2){
groupedArray.push([arr[i], arr[i + 1]]);
}
return groupedArray;
};
这显然仅适用于具有偶数元素的数组。如果你需要这个函数来处理具有奇数个元素的数组,那么你需要为此进行编辑。
答案 2 :(得分:0)
这是一种用于对数组元素进行分组的小方法。如果您只关心对,那么您可以检查内部数组的长度是否为2。
if (!Array.prototype.group) {
Array.prototype.group = function (length) {
var a = this.slice(), r = [];
length = length || 1;
while (a.length > 0) {
r.push(a.splice(0, length));
}
return r;
};
}
var arr = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'].group(2);
console.log(arr);
如果您要丢弃与预期长度不匹配的最终组,请使用此版本。
if (!Array.prototype.group) {
Array.prototype.group = function (length, req) {
var a = this.slice(), r = [], h;
length = length || 1;
while (a.length > 0) {
h = a.splice(0, length);
if (!req || h.length === length) {
r.push(h);
}
}
return r;
};
}
var arr = ['an', 'odd', 'number', 'of', 'elements'].group(2, true);
console.log(arr)