gpt4 book ai didi

javascript - 将对象数组转换为其子数组后的新数组

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:06:30 25 4
gpt4 key购买 nike

我有一个这样的数组

var data = [
{
name: "Movies", info: "category_name",
content: [
{ name: "Interstellar", info: "category_data" },
{ name: "Dark Knight", info: "category_data" },
]
},
{
name: "Music", info: "category_name",
content: [
{ name: "Adams", info: "category_data" },
{ name: "Nirvana", info: "category_data" },
]
},
{
name: "Places", info: "category_name",
content: [
{ name: "Jordan", info: "category_data" },
{ name: "Punjab", info: "category_data" },
]
},
]

想把它改造成这样

var transformedArray= [
{ name: "Movies", info: "category_name" },
{ name: "Interstellar", info: "category_data" },
{ name: "Dark Knight", info: "category_data" },
{ name: "Music", info: "category_name" },
{ name: "Adams", info: "category_data" },
{ name: "Nirvana", info: "category_data" },
{ name: "Places", info: "category_name" },
{ name: "Jordan", info: "category_data" },
{ name: "Punjab", info: "category_data" },
]

我不知道适合这种情况的关键字是什么,我已经尝试将它映射到新数组,但它与我预期的不一样

var newArr = []

var manipulate = data.map(item => {
return (
newArr.push(item),
new1.map(items => {
return (
new1.push(items)
)
})
)
})

然后如何将“数据”操作成“transformedArray”

最佳答案

使用Array.prototype.flatMap() .如果你的浏览器或 Node.js 版本还不支持这个功能,你可以在下面包含一个简单的 polyfill,基于 the specification :

if (!Array.prototype.flatMap) {
Object.defineProperty(Array.prototype, 'flatMap', {
configurable: true,
writable: true,
value: function flatMap (callback, thisArg = undefined) {
return this.reduce((array, ...args) => {
const element = callback.apply(thisArg, args);

if (Array.isArray(element)) array.push(...element);
else array.push(element);

return array;
}, []);
}
});
}

const data = [{name:'Movies',info:'category_name',content:[{name:'Interstellar',info:'category_data'},{name:'Dark Knight',info:'category_data'}]},{name:'Music',info:'category_name',content:[{name:'Adams',info:'category_data'},{name:'Nirvana',info:'category_data'}]},{name:'Places',info:'category_name',content:[{name:'Jordan',info:'category_data'},{name:'Punjab',info:'category_data'}]}];
const transformedArray = data.flatMap(({ content, ...o }) => [o, ...content]);

console.log(transformedArray);

关于javascript - 将对象数组转换为其子数组后的新数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58355959/

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