按新行插入数组中的元素,并在不使用Map的情况下为每条新行指定对象属性



我是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)

相关内容

最新更新