gpt4 book ai didi

javascript - 在javascript中查找对象(在另一个对象内)内的最长数组

转载 作者:行者123 更新时间:2023-11-30 14:53:55 25 4
gpt4 key购买 nike

我有一个对象的对象。在这些对象中是数组,其中包含更多对象。下面是结构。

我想找出父对象中最长的对象数组。所以在我下面的例子中:

For ObjectOne - the longest array is B.

For ObjectTwo, the longest array is C.

mainobj = {
ObjectOne: {
A: [
{ x: 'd', y: 'e'},
{ x: 'd', y: 2}
],
B: [
{ x: 'd', y: 'e'},
{ x: 'd', y: 'e'},
{ x: 'd', y: 'e'},
{ x: 'd', y: 'e'}
],
C: [
{ x: 'd', y: 'e'}
]
},
ObjectTwo:{
A: [
{ x: 'd', y: 'e'},
{ x: 'd', y: 'e'},
{ x: 'd', y: 'e'}
],
B: [
{ x: 'd', y: 'e'},
{ x: 'd', y: 'e'}
],
C: [
{ x: 'd', y: 'e'},
{ x: 'd', y: 'e'},
{ x: 'd', y: 'e'},
{ x: 'd', y: 'e'},
{ x: 'd', y: 'e'}
]
}
}

我能做到:

var size = Object.values(mainobj).length

但我不知道如何更深入。例如,这不起作用:

var size = Object.values(mainobj)[0].length

This question is pretty similar ,但我不知道如何应用它。感谢您的帮助!

最佳答案

您可以为每个外部键返回一个对象,并获得一个具有最大内部数组键的数组。

var object = { objectOne: { A: [{ x: 'd', y: 'e' }, { x: 'd', y: 2 }], B: [{ x: 'd', y: 'e' }, { x: 'd', y: 'e' }, { x: 'd', y: 'e' }, { x: 'd', y: 'e' }], C: [{ x: 'd', y: 'e' }] }, objectTwo: { A: [{ x: 'd', y: 'e' }, { x: 'd', y: 'e' }, { x: 'd', y: 'e' }], B: [{ x: 'd', y: 'e' }, { x: 'd', y: 'e' }], C: [{ x: 'd', y: 'e' }, { x: 'd', y: 'e' }, { x: 'd', y: 'e' }, { x: 'd', y: 'e' }, { x: 'd', y: 'e' }] } },
result = Object.keys(object).map(function (k) {
var o = object[k];
return {
key: k,
items: Object.keys(o).reduce(function (r, l, i) {
if (!i || o[r[0]].length < o[l].length) {
return [l];
}
if (o[r[0]].length === o[l].length) {
r.push(l);
}
return r;
}, [])
};
});

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于javascript - 在javascript中查找对象(在另一个对象内)内的最长数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47669039/

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