我有这样一个数组:
arrays = [
{"y":"2020","OVO":3},
{"y":"2021","OVO":2,"Dana":1},
{"y":"2019","OVO":2,"Dana":1,"Shopepay":3},
{"y":"2018","OVO":2,"Dana":1,"Shopepay":4,"Gopay":1}, //length = 5
{"y":"2022","OVO":2,"Dana":1,"Shopepay":1}
];现在,我希望基于数组中最长的对象键创建新的数组。应从这方面:
{"y":"2018","OVO":2,"Dana":1,"Shopepay":4,"Gopay":1}, //length = 5对此:
['OVO','Dana','Shopepay','Gopay']如何在javascript中实现这一点?提前谢谢。
发布于 2022-02-18 08:34:08
找这样的东西?
const arrays = [
{"y":"2020","OVO":3},
{"y":"2021","OVO":2,"Dana":1},
{"y":"2019","OVO":2,"Dana":1,"Shopepay":3},
{"y":"2018","OVO":2,"Dana":1,"Shopepay":4,"Gopay":1},
{"y":"2022","OVO":2,"Dana":1,"Shopepay":1}
];
const longestArray = arrays.sort((a, b) => Object.keys(a).length - Object.keys(b).length)?.pop(); // sort for most object with most properties
console.log(Object.keys(longestArray).slice(1)); // remove first element from array
或者简单的一条线:
Object.keys(arrays.sort((a, b) => Object.keys(a).length - Object.keys(b).length)?.pop()).slice(1);https://stackoverflow.com/questions/71170425
复制相似问题