gpt4 book ai didi

javascript - 下划线并需要为数组创建多个顺序

转载 作者:行者123 更新时间:2023-11-28 07:32:51 29 4
gpt4 key购买 nike

2 个问题:

我得到了一个包含 2 个数组的对象,如下所示:

{"iOS":["iPad","iPhone","iPhone6","iPad Mini"],"Android":["Galaxy S6","Galaxy S4"],"BlackBerry":["BlackBerry3"]}

如何使用下划线构建像这样的单个对象:

myobject = {"iPad" : 0,"iPhone3": 0,"iPhone6" :0 ,"iPad Mini" :0, "Galaxy S6": 0,"Galaxy S4" :0, "BlackBerry3" : 0}

第二个问题,一旦我有了这样的对象:

myobject = {
"iPad" : 12,
"iPhone3": 0,
"iPhone6" :4 ,
"iPad Mini" :3,
"Galaxy S6": 1,
"Galaxy S4": 14,
"BlackBerry3" : 1
}

如何通过降序排列它的值来获取

myobject = {
"Galaxy S4" :14,
"iPad" : 12,
"iPhone6" :4 ,
"iPad Mini" :3,
"Galaxy S6" :1,
"iPhone3": 0,
"BlackBerry3" : 0
}

提前致谢

最佳答案

您无法对对象属性进行排序。您将需要使用替代数据结构,例如对象数组。

例如,您可以使用以下代码构建这样的结构:

var myObject = _.chain(data).values().flatten().map(function(el) {
return {
type: el,
count: 0
};
}).value();

它看起来像这样:

[{"type":"iPad","count":0},{"type":"iPhone","count":0}, ... ];

然后就很容易用 _.sortBy 排序了功能:

_.sortBy(myObject, 'count');

UPD。如果您确实想创建一个对象,那么您可以这样做:

var myObject = _.chain(data).values().flatten().reduce(function(prev, curr) { 
prev[curr] = 0;
return prev;
}, {}).value();

这将给出

{"iPad":0,"iPhone":0,"iPhone6":0,"iPad Mini":0,"Galaxy S6":0,"Galaxy S4":0,"BlackBerry3":0}

关于javascript - 下划线并需要为数组创建多个顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28924502/

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