JS使用地图合并了两个子阵列

发布于 2025-01-21 15:11:28 字数 1083 浏览 3 评论 0原文

我用以下内容合并两个阵列:

var mySeries = [
    { name: '4', data: [4] },
    { name: '3', data: [3] }
];
var mySeries1 = [
    { name: '5', data: [0] },
    {name: '4', data:[0]},
    {name: '3', data:[0]},
    {name: '2', data:[0]},
    { name: '1', data: [0] }
];

var res = mySeries1.map(obj => mySeries.find(o => o.name === obj.name) || obj);
console.log(res);

效果很好;但是,我的挑战是我的数组的结构为:

var myArray = [{ 
    mySeries : [
        { name: '4', data: [4] },
        { name: '3', data: [3] }],
    mySeries1 : [
        { name: '5', data: [0] },
        { name: '4', data: [0] },
        { name: '3', data: [0] },
        { name: '2', data: [0] },
        { name: '1', data: [0] }]
    }];
];

因此,我需要映射子阵列,尝试使用以下内容:

var res = myArray.mySeries1.map(obj => myArray.mySeries.find(o => o.name === obj.name) || obj);

我得到此错误:

Cannot read properties of undefined (reading 'map')

如何指向子阵列?

I use the following to merge two arrays:

var mySeries = [
    { name: '4', data: [4] },
    { name: '3', data: [3] }
];
var mySeries1 = [
    { name: '5', data: [0] },
    {name: '4', data:[0]},
    {name: '3', data:[0]},
    {name: '2', data:[0]},
    { name: '1', data: [0] }
];

var res = mySeries1.map(obj => mySeries.find(o => o.name === obj.name) || obj);
console.log(res);

Works great; however, my challenge is my array is structured as:

var myArray = [{ 
    mySeries : [
        { name: '4', data: [4] },
        { name: '3', data: [3] }],
    mySeries1 : [
        { name: '5', data: [0] },
        { name: '4', data: [0] },
        { name: '3', data: [0] },
        { name: '2', data: [0] },
        { name: '1', data: [0] }]
    }];
];

So I need to map subarrays, tried using the following:

var res = myArray.mySeries1.map(obj => myArray.mySeries.find(o => o.name === obj.name) || obj);

I get this error:

Cannot read properties of undefined (reading 'map')

How can I point to the subarray?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

羅雙樹 2025-01-28 15:11:28
var myArray = [{ 
    mySeries : [
        { name: '4', data: [4] },
        { name: '3', data: [3] }],
        mySeries1 : [
            { name: '5', data: [0] },
            { name: '4', data: [0] },
            { name: '3', data: [0] },
            { name: '2', data: [0] },
            { name: '1', data: [0] }
        ]
        }];

var res = myArray[0].mySeries1.map(obj => myArray[0].mySeries.find(o => o.name === obj.name) || obj);
console.log(res)

var myArray = [{ 
    mySeries : [
        { name: '4', data: [4] },
        { name: '3', data: [3] }],
        mySeries1 : [
            { name: '5', data: [0] },
            { name: '4', data: [0] },
            { name: '3', data: [0] },
            { name: '2', data: [0] },
            { name: '1', data: [0] }
        ]
        }];

var res = myArray[0].mySeries1.map(obj => myArray[0].mySeries.find(o => o.name === obj.name) || obj);
console.log(res)

为你鎻心 2025-01-28 15:11:28

您可以将阵列更改为字典,并像已经一样迭代它。

var myArray = { 
    mySeries : [
        { name: '4', data: [4] },
        { name: '3', data: [3] }],
    mySeries1 : [
        { name: '5', data: [0] },
        { name: '4', data: [0] },
        { name: '3', data: [0] },
        { name: '2', data: [0] },
        { name: '1', data: [0] }]
    };

var res = myArray.mySeries1.map(obj => myArray.mySeries.find(o => o.name = = == obj.name)|| obj);>

you could change your array to dictionary and iterate it like you already did.

var myArray = { 
    mySeries : [
        { name: '4', data: [4] },
        { name: '3', data: [3] }],
    mySeries1 : [
        { name: '5', data: [0] },
        { name: '4', data: [0] },
        { name: '3', data: [0] },
        { name: '2', data: [0] },
        { name: '1', data: [0] }]
    };

i.e. var res = myArray.mySeries1.map(obj => myArray.mySeries.find(o => o.name === obj.name) || obj);

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文