Javascript 是否需要在对象中转换此数组?
我的Javascript 是否需要在对象中转换此数组?,javascript,arrays,reactjs,react-native,ecmascript-6,Javascript,Arrays,Reactjs,React Native,Ecmascript 6,我的数据是一个数组,我正在将其转换为键:值(不确定这是否是它的名称)类型 数据: [ { "id": 1, "title": "Name 01", "tags": [ "TAG1", "TAG4", "TAG2" ] }, { "id": 2, "title": "Name 02", "ta
数据
是一个数组,我正在将其转换为键:值
(不确定这是否是它的名称)类型
数据:
[
{
"id": 1,
"title": "Name 01",
"tags": [
"TAG1",
"TAG4",
"TAG2"
]
},
{
"id": 2,
"title": "Name 02",
"tags": [
"TAG4",
"TAG3"
]
},
{
"id": 3,
"title": "Name 03",
"tags": [
"TAG1"
]
}
]
我将此转换为:
result = data.map(a => ({ [a.id]: a }));
所以我得到:
结果:
[
{
"1": {
"id": 1,
"title": "Post1 T1 T2 T4",
"tags": [
"TAG1",
"TAG4",
"TAG2"
]
}
},
{
"2": {
"id": 2,
"title": "Post1 T3 T4",
"tags": [
"TAG4",
"TAG3"
]
}
},
{
"3": {
"id": 3,
"title": "Post3 with No Tags",
"tags": [
"TAG1"
]
}
}
]
如何映射结果并在视图/文本中显示
我试过:
Object.keys(results).map((result, idx) => {
return(
<View key={idx}>
<Text>{result.title}</Text>
</View>
)
});
我这样做的原因是为了将id作为调度操作的目标:
switch (action.type) {
case "INC_NUM":
const newState = {...state};
newState[action.payload].nubmer++;
return newState;
听起来您只是希望能够快速找到具有给定id值的对象。与其“转换”你的数据,我建议你只制作一张地图,这样你就可以通过id查找任何对象
let数据=[
{
“id”:1,
“标题”:“名称01”,
“标签”:[
“TAG1”,
“TAG4”,
“TAG2”
]
},
{
“id”:2,
“标题”:“名称02”,
“标签”:[
“TAG4”,
“TAG3”
]
},
{
“id”:3,
“标题”:“姓名03”,
“标签”:[
“TAG1”
]
}
];
//创建一个以id为键、对象为值的映射
设map=newmap();
data.forEach(obj=>{
映射集(obj.id,obj);
});
//查找给定的id
console.log(map.get(3))代码>呃,嗯。为什么?你所做的就是用另一个对象包装每个内部对象,这有什么目的?它所做的只是强制您使用数组[0][1].id来引用对象,而不是数组[0].id
。事实上,它没有任何成效。这就是你否决我问题的原因吗?我更新了它。当前的数据/结果
中没有编号
键。但我想先把它整理一下。如果这些对象的数组没有在数组外部定义,您将如何使用对象的id
来定位这些对象的数组?因为数组的索引从0开始。所以id1是0,id2是1,等等。假设您没有任何缺少的id,这应该线性地继续。但是,您可以将数组转换为一个遵循类似结构的对象,其中键是id。这就是我在第一次显示的结果中所做的。但是我不能用地图显示它。这是本文的第一个问题。请帮忙。不,你的结果仍然是一个数组。为什么要投反对票?请告诉我这个答案有什么问题,以便我可以纠正或改进它。没有任何理由的否决票对社区来说真的不是很有帮助。即使我的问题被否决了,我仍然没有;我不明白为什么。我问了一个问题,他们没有解释,而是投了反对票。不酷。他们让初学者很难学习。@Somename-你的问题可能被否决了,因为它不是很清楚。在你的问题中,你需要做的第一件事就是解释你试图解决的实际问题。准确地显示您想要的输出或您试图使哪些代码工作。您花费了大量精力记录您尝试过的所有代码,但很少解释您试图解决的根本问题是什么。我猜这就是你想要的,因为你的问题不是很清楚。这个网站要求你写出很多人都不擅长的清晰的问题。@Somename-而且,当我们在做的时候,这个答案是否解决了你的问题?如果没有,请解释原因,然后澄清你的问题。你的回答实际上解决了这个问题。这正是我要找的。我现在正试图弄清楚如何处理减速器中的动作。谢谢
switch (action.type) {
case "INC_NUM":
const newState = {...state};
newState[action.payload].nubmer++;
return newState;