gpt4 book ai didi

javascript - 在对象中添加到数组时避免 if..else 阶梯

转载 作者:行者123 更新时间:2023-11-30 08:03:56 29 4
gpt4 key购买 nike

有没有办法在下面的代码中避免 if..else 条件并在一行中执行此操作?

var myObject = {},
data = ["Chennai", "Thoothukkudi", "Madurai",
"Coimbatore", "Trichy", "Salem", "Tirunelveli",
"Erode", "Vellore", "Tiruppur"];

data.forEach(function(currentCity) {
if (currentCity[0] in myObject) {
myObject[currentCity[0]].push(currentCity);
} else {
myObject[currentCity[0]] = [currentCity];
}
});

console.log(myObject);

输出

{ C: [ 'Chennai', 'Coimbatore' ],
T: [ 'Thoothukkudi', 'Trichy', 'Tirunelveli', 'Tiruppur' ],
M: [ 'Madurai' ],
S: [ 'Salem' ],
E: [ 'Erode' ],
V: [ 'Vellore' ] }

问题是,我必须在我的代码中的许多地方执行此 if..else 检查。如果我在 8 个地方这样做,它加起来就是 40 行。所以,我正在寻找一种将其写在一行中的方法。

在 Python 中,有一个叫做 defaultdict 的东西,一个普通的字典也可以用 setdefault 函数。有没有优雅和简短(行数较少)的方法来做到这一点?

最佳答案

像这样:

myObject[currentCity[0]] = myObject[currentCity[0]] || [];
myObject[currentCity[0]].push(currentCity);

关于javascript - 在对象中添加到数组时避免 if..else 阶梯,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21378402/

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