我是js的新手,非常感谢您的帮助。
目前,我有一段代码,它采用每个1元素数组,将其拆分为\n,然后使用map将每个拆分值分配给对象属性。目前,我正在使用map
函数来实现这一点,但我想知道是否有一种方法可以实现相同的输出,而不需要创建新的数组。
示例:(注意,数组由1个元素组成,直到我用map解析它。
var data = [
'FooBarn'
'BarFoon'
'FoodBarn,'
]
let headers = {
BarOfFoo: "",
FoodOfBar: "",
BarBarOfFoo: "",
};
let keys = Object.keys(headers);
result = data.map(s => Object.fromEntries(s.trim().split('n').map((v, i) => [keys[i], v])));
console.log(result)
输出如下所示:
result =
[{
BarOfFoo: 'FooBar',
FoodOfBar: 'BarFoo',
BarBarofFoo: 'FoodBar',
}]
如何在不创建新阵列的情况下使用更传统的方式来实现这一点?
使用reduce&以达到相同的预期结果。
var data = [
'FooBarnBarFoonFoodBarn'
]
let headers = {
BarOfFoo: "",
FoodOfBar: "",
BarBarOfFoo: "",
};
let result = Array.of(Object.fromEntries(data.reduce((acc,curr) => {
curr.trim().split("n").forEach((v, i) => {acc[i]=[acc[i], v]})
return acc;
},Object.keys(headers))))
console.log(result)