gpt4 book ai didi

javascript - 在事先不知道键的情况下将项目推送到对象中的数组

转载 作者:行者123 更新时间:2023-11-29 16:40:49 25 4
gpt4 key购买 nike

我收到请求的响应,并且我想将数据显示为带有数组的对象。响应看起来像“事件/月份/事件”。我想最终得到一个对象,其中每个月是一个键,值是一个事件数组。我已经成功地将 key 和事件分开,但是当我想将其放入对象中时却遇到了困难。我不知道响应中的键,因此无法在 resultObj 中将它们定义为数组。因此,我无法使用 push 来扩展数组。

const response = [
"events/july/",
"events/july/summer-party",
"events/july/bbq",
"events/dec/",
"events/dec/christmas",
"events/dec/new-year"
];


let resultObj = {};
response.forEach(item => {
let str = item;
let key = str.replace("events/", "");
let event = key.split("/").pop();

key = key.substring(0, key.indexOf("/"));
resultObj[key] = [event];
})

console.log(resultObj);
// july: ["bbq"], dec: ["new-year"]

jsfiddle:https://jsfiddle.net/3z1de2r4/1/

最佳答案

您可以拆分和解构键和值,并仅在真值可用时才推送。

const response = ["events/july/", "events/july/summer-party", "events/july/bbq", "events/dec/", "events/dec/christmas", "events/dec/new-year"];

let resultObj = {};

response.forEach(item => {
let [, key, value] = item.split("/");
value && (resultObj[key] = resultObj[key] || []).push(value);
});

console.log(resultObj);

关于javascript - 在事先不知道键的情况下将项目推送到对象中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46114416/

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