我正在尝试将一个较大的数组分解为较小的块。
下面是一个示例:
var data = [ { number: '184805871' },
{ number: '3418400730' },
{ number: '2047901973' },
{ number: '5038880529' },
{ number: '5040293507' },
{ number: '5044243187' },
{ number: '5078304520' },
{ number: '5085466763' },
{ number: '5145133307' },
{ number: '5197540781' },
{ number: '5199065039' },
{ number: '5208120208' },
{ number: '5212123861' },
{ number: '5212383329' },
{ number: '5214353364' },
{ number: '5229836037' }
];
我的数组比这个长得多,这只是一个例子。所以我熟悉PHP中的array_chunk函数,并在php.js中找到了它。
function array_chunk (input, size, preserve_keys) {
var x, p = '', i = 0, c = -1, l = input.length || 0, n = [];
if (size < 1) {
return null;
}
if (Object.prototype.toString.call(input) === '[object Array]') {
if (preserve_keys) {
while (i < l) {
(x = i % size) ? n[c][i] = input[i] : n[++c] = {}, n[c][i] = input[i];
i++;
}
}
else {
while (i < l) {
(x = i % size) ? n[c][x] = input[i] : n[++c] = [input[i]];
i++;
}
}
}
else {
if (preserve_keys) {
for (p in input) {
if (input.hasOwnProperty(p)) {
(x = i % size) ? n[c][p] = input[p] : n[++c] = {}, n[c][p] = input[p];
i++;
}
}
}
else {
for (p in input) {
if (input.hasOwnProperty(p)) {
(x = i % size) ? n[c][x] = input[p] : n[++c] = [input[p]];
i++;
}
}
}
}
return n;
}
有比这更简单的方法吗?
下面是我的代码:
var chunks = array_chunk(data, 3);
jQuery.each(chunks, function(index, value) {
console.log(index + ': ' + value);
});
如何将number中的值取到console.log而不是[Object]中?我尝试了value[0]等,但它不工作。
对于每个数组,每个数组分为3个,我需要从数组中获取索引和值。
我该怎么做?
3条答案
按热度按时间wpcxdonn1#
array.slice方法可以从数组的开头、中间或结尾提取切片,以满足您的任何需要。
kgqe7b3p2#
r6l8ljro3#
由于你的问题我不清楚,你知道你可以很容易地slice任何数组在JavaScript?
“获取数据数组并将其拆分为单独的数组,每个数组只有3个数字”:
到“遍历每个数组并获取每个沿着的值以及数组的索引”:
编辑:
如果要显示
你可以这样做: