gpt4 book ai didi

Javascript:我应该将其定义为数组键还是对象属性?

转载 作者:行者123 更新时间:2023-12-03 05:52:13 25 4
gpt4 key购买 nike

您建议选择哪两种方法?

let x1 = 
{
"type1": [{"data":"data1"}, {"data":"data2"}],
"type2": [{"data":"data3"}, {"data":"data4"}],
}

let x2 =
[
{"data": "data1", "type": "type1"},
{"data": "data2", "type": "type1"},
{"data": "data3", "type": "type2"},
{"data": "data4", "type": "type2"},
]

let type = "type1";

我猜 .forEach 或 .map 可以同时适用于 x1 和 x2,如下所示。

x1 的情况:

x1[type].forEach(obj => {...})

x2 的情况:

x2.filter(x2obj => x2obj.type === type).forEach(obj => {...})

谢谢!

更新:data可以是论坛中的问题/答案对象和 type例如可以是标签

最佳答案

这实际上取决于您主要访问数据的方式。没有什么可以阻止您以类似于 x1 的格式存储对 x2 中对象的引用:

let x2 =
[
{"data": "data1", "type": "type1"},
{"data": "data2", "type": "type1"},
{"data": "data3", "type": "type2"},
{"data": "data4", "type": "type2"},
]
let x1 = {};
for(let i = 0; i < x2.length; i++){
let type = x2[i].type;
if(!x1.hasOwnProperty(type)){
x1[type] = [];
}
x1[type].push(x2[i]);
}
x2 更容易迭代每个元素并执行操作(即,正如我上面所做的迭代和转换它一样)。无论类型如何,对元素进行排序和过滤都会更容易。

如果按类型访问数据,即如果您想说按类型分组的输出项,x1 会更容易。

考虑一下数据可能会如何使用。您将如何访问它应该有助于您决定它的结构。在您看来,数据将如何分组?一直都是按类型分类吗?如果不是,则可能是 x2,如果是,则可能是 x1。

关于Javascript:我应该将其定义为数组键还是对象属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40098997/

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