gpt4 book ai didi

javascript - 映射具有未知长度和未知键名称的对象数组

转载 作者:行者123 更新时间:2023-11-28 16:50:17 24 4
gpt4 key购买 nike

以下是一些对象数组:

1. [{id:'1', code:'somecode', desc:'this is the description'}, {...}, {...}]

2. [{fname:'name', lname:'last name', address:'my address', email:'my@email.com'}, {...}, {...}]

我需要做的是创建一个函数,在其中传递一个数组并将它们的对象键映射到通用键,这样它们就变成这样:

1. [{key1:'1', key2:'somecode', key3:'this is the description'}, {...}, {...}]

2. [{key1:'name', key2:'last name', key3:'my address', key4:'my@email.com'}, {...}, {...}]

当我这样做时

let keys: string[] = Object.keys(this.options[0])
this.replacedItems = this.options.map(item => {
return{
key1: item[keys[0]],
key2: item[keys[1]],
key3: item[keys[2]],
}
});

它工作正常,但由于对象的属性编号不固定,我尝试了这个

let keys: string[] = Object.keys(this.options[0])
this.replacedItems = this.options.map(item => {
let i=0;
keys.forEach(key=>{
let newKey = 'key'+i;
i++
return { newKey: item[key] }
});
});

它返回一个未定义的数组...我做错了什么?

最佳答案

采用.map的第二个参数来获取您正在迭代的当前索引,并将其与'key'连接起来。您还可以使用 Object.values 而不是 Object.keys 来立即获取值(因为您实际上并未使用原始键):

const options = [{id:'1', code:'somecode', desc:'this is the description'}];
const replacedItems = options.map(obj => Object.fromEntries(
Object.values(obj).map((val, i) => ['key' + (i + 1), val])
));
console.log(replacedItems);

关于javascript - 映射具有未知长度和未知键名称的对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60031502/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com