如何获取数组中对象的索引并将该值连接到对象键上?
How do you take the index of an object in an array and concatenate that value onto the object key?
我有这个数组:
var arr = [
{
itemCategory: "cats",
itemSku: "12345",
itemSubTotal: 10,
itemQuantity: 2,
},
{
itemCategory: "dogs",
itemSku: "56789",
itemSubTotal: 5,
itemQuantity: 1,
}
]
我需要这种格式:
var arr = [
{
itemCategory1: "cats",
itemSku1: "12345",
itemSubTotal1: 10,
itemQuantity1: 2,
},
{
itemCategory2: "dogs",
itemSku2: "56789",
itemSubTotal2: 5,
itemQuantity2: 1,
}
]
如何获取当前对象的索引号并将其附加到对象的键?我能做的最好的是:
var newArr=[];
for (var i = 0; i < arr.length; i++){
var obj = arr[i];
for (var key in obj){
var value = obj[key];
var j = i;
j = j+=1;
newArr.push(key + j + ": " + value);
}
}
但它只给我一个平面数组:
0: "itemCategory1: cats"
1: "itemSku1: 12345"
2: "itemSubTotal1: 10"
3: "itemQuantity1: 2"
4: "itemCategory2: dogs"
5: "itemSku2: 56789"
6: "itemSubTotal2: 5"
7: "itemQuantity2: 1"
感谢我只是将它推入数组,但我不知道如何使用这些索引号更新对象键。
感谢您的帮助;非常感谢。
在您的代码中,这一行:
newArr.push(key + j + ": " + value);
应该是这样的:
newArr.push({[key + j]: value});
我认为将键映射到新对象可能更清晰
let arr = [{
itemCategory: "cats",
itemSku: "12345",
itemSubTotal: 10,
itemQuantity: 2,
},
{
itemCategory: "dogs",
itemSku: "56789",
itemSubTotal: 5,
itemQuantity: 1,
}
]
arr = arr.map((a, i) => {
let n = {}
Object.keys(a).forEach(k => n[k + (i + 1)] = a[k]);
return n;
})
console.log(arr)
工作演示:
// Input array
let arr = [
{
itemCategory: "cats",
itemSku: "12345",
itemSubTotal: 10,
itemQuantity: 2,
},
{
itemCategory: "dogs",
itemSku: "56789",
itemSubTotal: 5,
itemQuantity: 1,
}
];
// Calculation to add index in each property of an object.
arr.forEach((obj, index) => {
Object.keys(obj).forEach((item) => {
obj[item + (index + 1)] = obj[item];
delete obj[item];
})
});
// Result
console.log(arr);
我有这个数组:
var arr = [
{
itemCategory: "cats",
itemSku: "12345",
itemSubTotal: 10,
itemQuantity: 2,
},
{
itemCategory: "dogs",
itemSku: "56789",
itemSubTotal: 5,
itemQuantity: 1,
}
]
我需要这种格式:
var arr = [
{
itemCategory1: "cats",
itemSku1: "12345",
itemSubTotal1: 10,
itemQuantity1: 2,
},
{
itemCategory2: "dogs",
itemSku2: "56789",
itemSubTotal2: 5,
itemQuantity2: 1,
}
]
如何获取当前对象的索引号并将其附加到对象的键?我能做的最好的是:
var newArr=[];
for (var i = 0; i < arr.length; i++){
var obj = arr[i];
for (var key in obj){
var value = obj[key];
var j = i;
j = j+=1;
newArr.push(key + j + ": " + value);
}
}
但它只给我一个平面数组:
0: "itemCategory1: cats"
1: "itemSku1: 12345"
2: "itemSubTotal1: 10"
3: "itemQuantity1: 2"
4: "itemCategory2: dogs"
5: "itemSku2: 56789"
6: "itemSubTotal2: 5"
7: "itemQuantity2: 1"
感谢我只是将它推入数组,但我不知道如何使用这些索引号更新对象键。
感谢您的帮助;非常感谢。
在您的代码中,这一行:
newArr.push(key + j + ": " + value);
应该是这样的:
newArr.push({[key + j]: value});
我认为将键映射到新对象可能更清晰
let arr = [{
itemCategory: "cats",
itemSku: "12345",
itemSubTotal: 10,
itemQuantity: 2,
},
{
itemCategory: "dogs",
itemSku: "56789",
itemSubTotal: 5,
itemQuantity: 1,
}
]
arr = arr.map((a, i) => {
let n = {}
Object.keys(a).forEach(k => n[k + (i + 1)] = a[k]);
return n;
})
console.log(arr)
工作演示:
// Input array
let arr = [
{
itemCategory: "cats",
itemSku: "12345",
itemSubTotal: 10,
itemQuantity: 2,
},
{
itemCategory: "dogs",
itemSku: "56789",
itemSubTotal: 5,
itemQuantity: 1,
}
];
// Calculation to add index in each property of an object.
arr.forEach((obj, index) => {
Object.keys(obj).forEach((item) => {
obj[item + (index + 1)] = obj[item];
delete obj[item];
})
});
// Result
console.log(arr);