如何在 JavaScript 中对数组进行切片
How to slice an array in JavaScript
所以我有一个烦人的长数组,因为抓取了一个网站。我想将此数组切成具有七个属性的对象。
我想从中得到:
[
".:j:.Junque.Shoppe",
"Texas",
"Liberty",
"253",
"0",
"2",
"21 minutes, 24 seconds",
"[Neptune]",
"Pennsylvania",
"Liberty",
"50",
"0",
"2",
"2 minutes, 7 seconds"
//40 more sets like this
]
对此:
[
{
name: ".:j:.Junque.Shoppe",
system: "Texas",
region: "Liberty",
ping: "253",
loss: "0",
lag: "2",
online: "21 minutes, 24 seconds"
},
{
name: "[Neptune]"
//(...)
},
//(...)
]
如果它始终是 7 个属性并且始终以正确的顺序排列:
var parseJunk = function(arr) {
var result = [];
for (var i = 0; i < arr.length; i += 7) {
var obj = {
name: arr[i],
system: arr[i+1],
region: arr[i+2],
ping: arr[i+3],
loss: arr[i+4],
lag: arr[i+5],
online: arr[i+6]
};
result.push(obj);
}
return result;
}
您可以使用此函数执行此操作(请注意下面的代码片段中显示的键数组):
function sliceToObj(original, keys) {
if (original.length % keys.length !== 0) return false;
var res = [];
var obj = {};
original.forEach(function (val, i) {
if (i > 0 && i % keys.length === 0) {
res.push(obj);
obj = {};
}
obj[keys[i % keys.length]] = val;
});
res.push(obj);
return res;
}
function sliceToObj(original, keys) {
if (original.length % keys.length !== 0) return false;
var res = [];
var obj = {};
original.forEach(function (val, i) {
if (i > 0 && i % keys.length === 0) {
res.push(obj);
obj = {};
}
obj[keys[i % keys.length]] = val;
});
res.push(obj);
return res;
}
var arr = [
".:j:.Junque.Shoppe",
"Texas",
"Liberty",
"253",
"0",
"2",
"21 minutes, 24 seconds",
"[Neptune]",
"Pennsylvania",
"Liberty",
"50",
"0",
"2",
"2 minutes, 7 seconds"
//40 more sets like this
];
var keys = [
'name',
"system",
"region",
'ping',
'loss',
'lag',
'online'
];
console.log(sliceToObj(arr, keys));
相关文章:
- 对不同的数组进行切片并返回选定的值
- 如何在jquery中对php/ajax传递的数组进行切片
- Ramda.js - 切片数组的内部值
- JavaScript 中的最大公共数组切片
- 切片和拼接不适用于数组值
- 我如何在数组中存储值 从切片获取
- 如何从对象文本数组中切片数组
- 无法通过在节点.js中切片来修改数组
- 使用对象对数组进行切片,并获取包含对象副本的数组
- 未引用的数组在“切片”之后不那么未引用
- JavaScript 数组切片与删除
- 如何在数组中轻松添加“.”,可以使用切片
- 用键数组对JSON对象数组进行切片
- handlers.js模板,带有用于切片数据数组的自定义助手
- 复制带切片的数组时出现异常行为
- 从数组(切片)中提取x个项目,但如果到达末尾,则从头开始继续
- 数组.切片不起作用,它只是原样复制数组,而不是减去一些值
- 多维数组切片多个HTML表和导航d3.js
- 排序javascript数组切片
- 为什么数组切片将javascript参数转换为数组