gpt4 book ai didi

javascript - 什么是将事物分类为类型的良好 JavaScript 模式?

转载 作者:行者123 更新时间:2023-11-30 18:50:02 25 4
gpt4 key购买 nike

我正在寻找一种方法(在 JavaScript 中)将一组对象收集到多个数组中,其中每个数组包含特定类型的对象,并且数组作为值存储在关联数组中,键是类型。例如:

输入:

[<apple>, <cat>, <pear>, <mercedes>, <dog>, <ford>, <orange>]

输出:

{
'fruit': [<apple>, <pear>, <orange>],
'animal': [<cat>, <dog>],
'car': [<mercedes>, <ford>]
}

在 ruby​​ 中,您可以执行以下操作:

things_by_type = {}
things.each do |thing|
(things_by_type[thing.type] ||= []) << thing
end

简洁明了。

在 JavaScript 中做同样事情的简洁高效的好模式是什么?我可以做这样的事情,但它不是很好:

var thing, things_by_type = {};
for (var i = 0; i < things.length; i++) {
thing = things[i];
if(things_by_type[thing.type]) {
things_by_type[thing.type].push(thing);
} else {
things_by_type[thing.type] = [thing];
}
}

最佳答案

我不确定这是否是一个好的模式,但它类似于您的 ruby 示例:

var things_by_type = {};
for (var i in things) {
var thing = things[i];
(things_by_type[thing.type] || (things_by_type[thing.type] = [])).push(thing);
}

如果您可以假设 Javascript 1.6:

var things_by_type = {};
things.forEach(function(thing) {
(things_by_type[thing.type] || (things_by_type[thing.type] = [])).push(thing);
})

关于javascript - 什么是将事物分类为类型的良好 JavaScript 模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4235919/

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