在javascript中将键名添加到数组中
我有一个对象数组,我正在使用map函数将该对象数组简化为每个对象中单个元素的数组。之后,我将删除该阵列中的dup元素。在这样做之后,我有一个类似arr=[100101103104105]的数组,但我希望每个元素都有一个键名,比如arr=[{id:100},{id:101},{id:103},{id:104},{id:105}] 我的初始对象数组:在javascript中将键名添加到数组中,javascript,arrays,reactjs,Javascript,Arrays,Reactjs,我有一个对象数组,我正在使用map函数将该对象数组简化为每个对象中单个元素的数组。之后,我将删除该阵列中的dup元素。在这样做之后,我有一个类似arr=[100101103104105]的数组,但我希望每个元素都有一个键名,比如arr=[{id:100},{id:101},{id:103},{id:104},{id:105}] 我的初始对象数组: const options = [ { id: 1, value: 'chocolate', label: 'Chocolate' },
const options = [
{ id: 1, value: 'chocolate', label: 'Chocolate' },
{ id: 2,value: 'strawberry', label: 'Strawberry' },
{ id: 3,value: 'vanilla', label: 'Vanilla' },
{ id: 4,value: 'vanilla', label: 'Vanilla' },
];
所以uniqueTest给出了一个类似[巧克力、草莓、香草]的数组
如果可能的话,我想要的是一个带有键名的数组。要获得所需的结果,您可以使用,它将为您提供一个新的数组副本。对于从字符串到数字的转换,可以使用函数将字符串转换为数字 请检查下面的代码片段 设arr=[100101103104105] 让output=arr.mapitem=>{id:Numberitem}
logoutput要获得所需的结果,您可以使用,它将为您提供一个新的数组副本。对于从字符串到数字的转换,可以使用函数将字符串转换为数字 请检查下面的代码片段 设arr=[100101103104105] 让output=arr.mapitem=>{id:Numberitem} logoutput您可以尝试使用reduce,因为它不仅用于获取单个所需的输出,还可以用于将数组转换为对象密钥对 另一个例子 常量选项=[{ id:1, 价值:“巧克力”, 标签:“巧克力” }, { id:2, 价值:'草莓', 标签:“草莓” }, { id:3, 价值:'香草', 标签:“香草” }, { id:4, 价值:'香草', 标签:“香草” }, ]; const newArr=acc,cv=>{ 返回{…acc, [简历标签]:简历 }; } const findByLabel=options.reducenewArr,{}; logfindByLabel您可以尝试使用reduce,因为它不仅用于获取单个所需的输出,还可以用于将数组转换为对象密钥对 另一个例子 常量选项=[{ id:1, 价值:“巧克力”, 标签:“巧克力” }, { id:2, 价值:'草莓', 标签:“草莓” }, { id:3, 价值:'香草', 标签:“香草” }, { id:4, 价值:'香草', 标签:“香草” }, ]; const newArr=acc,cv=>{ 返回{…acc, [简历标签]:简历 }; } const findByLabel=options.reducenewArr,{}; console.logfindByLabel使用map并确保map方法返回所需的键名 常量选项=[ {id:1,值:'chocolate',标签:'chocolate'}, {id:2,值:'草莓',标签:'草莓'}, {id:3,值:'vanilla',标签:'vanilla'}, {id:4,值:'vanilla',标签:'vanilla'}, ]; 设testArr=options.mapa=>a.value; 让uniqueTest=[…new settstarr]; const output=uniqueTest.mapkey=>{key}; logoutput使用map并确保map方法返回所需的键名 常量选项=[ {id:1,值:'chocolate',标签:'chocolate'}, {id:2,值:'草莓',标签:'草莓'}, {id:3,值:'vanilla',标签:'vanilla'}, {id:4,值:'vanilla',标签:'vanilla'}, ]; 设testArr=options.mapa=>a.value; 让uniqueTest=[…new settstarr]; const output=uniqueTest.mapkey=>{key};
console.logoutput以下是您想要的: 常量选项=[ {id:1,值:'chocolate',标签:'chocolate'}, {id:2,值:'草莓',标签:'草莓'}, {id:3,值:'vanilla',标签:'vanilla'}, {id:4,值:'vanilla',标签:'vanilla'}, ]; 设testArr=options.mapa=>a.value; 让uniqueTest=Array.fromnew settstarr,value=>{value};
console.loguniqueTest以下是您想要的: 常量选项=[ {id:1,值:'chocolate',标签:'chocolate'}, {id:2,值:'草莓',标签:'草莓'}, {id:3,值:'vanilla',标签:'vanilla'}, {id:4,值:'vanilla',标签:'vanilla'}, ]; 设testArr=options.mapa=>a.value; 让uniqueTest=Array.fromnew settstarr,value=>{value};
console.loguniquetest欢迎使用堆栈溢出!请通读一遍,尤其是你在这里的最佳选择是做你的研究,对于相关的话题等等,并尝试一下。如果你在做了更多的研究和搜索后陷入困境,无法摆脱困境,请发布一份你的尝试,并明确指出你陷入困境的地方。人们会很乐意帮忙的。看看吧!然后可以将每个键映射到对象{id:key}。欢迎使用堆栈溢出!请通读一遍,尤其是你在这里的最佳选择是做你的研究,对于相关的话题等等,并尝试一下。如果你在做了更多的研究和搜索后陷入困境,无法摆脱困境,请发布一份你的尝试,并明确指出你陷入困境的地方。人们会很乐意帮忙的。看看吧!然后可以将每个键映射到一个对象{id:key}
但是我缺少了花括号里的括号。谢谢,它解决了我的问题。@ShalinPatel很乐意帮忙,如果对你有用,请接受。因此,这将有助于其他人在今后的参考资料:我曾试图这样做,但我错过了圆括号周围的括号。谢谢,它解决了我的问题。@ShalinPatel很乐意帮忙,如果对你有用,请接受。因此,这将有助于其他人将来参考:
let testArr = options.map(a => a.value);
let uniqueTest = [...new Set(test)];
arr = ["100", "101", "103", "104", "105"]
const newArr = (acc, cv) => {
return {...acc, ["id"]: cv};
}
const findById = arr.reduce(newArr, {});
console.log(findById)