Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 将嵌套对象转换为单个值数组_Reactjs_Ecmascript 6_Lodash - Fatal编程技术网

Reactjs 将嵌套对象转换为单个值数组

Reactjs 将嵌套对象转换为单个值数组,reactjs,ecmascript-6,lodash,Reactjs,Ecmascript 6,Lodash,我有一些json数据,如下所示: { 'harry-test-com': { 'quoteID234324': {'day': 'tuesday', 'cost':'1000'}}, 'sam-imaginarydomain-com': { 'quoteID13211': {'day': 'wednesday', 'cost': '500'}, 'quoteID534534': {'day': 'monday', 'cost': '300'} } }; 因此,基本上我们的报价是由用户安排的

我有一些json数据,如下所示:

{ 
'harry-test-com': { 'quoteID234324': {'day': 'tuesday', 'cost':'1000'}},
'sam-imaginarydomain-com': {
'quoteID13211': {'day': 'wednesday', 'cost': '500'},
'quoteID534534': {'day': 'monday', 'cost': '300'}
 }
};
因此,基本上我们的报价是由用户安排的,以便于过滤。但是,我想在一个页面上显示列表中的所有引号。所以我想遍历每个用户,获取他们的引号,并将它们添加到按键排序的对象中,如下所示:

'quoteID234324': {'day': 'tuesday', 'cost':'1000'}, 
'quoteID13211': {'day': 'wednesday', 'cost': '500'},
'quoteID534534': {'day': 'monday', 'cost': '300'}

我认为lodash无疑会对这一点有用,但我只是不知道从哪里开始??任何帮助都将不胜感激!干杯

您可以使用
object.keys()
object.assign()
将对象缩小为新对象:

const obj={
“哈利测试com”:{
“quoteID234324”:{
“日”:“星期二”,
“成本”:“1000”
}
},
“sam imaginarydomain com”:{
“quoteID13211”:{
“日”:“周三”,
‘成本’:‘500’
},
“quoteID534534”:{
“日”:“星期一”,
‘成本’:‘300’
}
}
};
const result=Object.keys(obj).reduce((天,用户)=>Object.assign(天,obj[user]),{});

控制台日志(结果)太棒了这正是我需要的谢谢你!我选择了第二个,因为它更简洁,因为我们可能会在每个对象中添加相当多的键。然而,eslint对我大喊大叫,要我使用spread,所以我研究了一下,结果是:`const result=Object.assign(…Object.values(obj))`更新了答案以创建一个新对象,因此它不会改变原始数据(“harry-test-com”对象)。太棒了!我只是想弄清楚为什么我的组件WillReceiveProps没有启动,我想这一定是因为状态发生了变化!救生员…嗯,它还没开火。我的redux reducer的结构如下:const quotes=action.payload;常量quotesList=Object.assign({},…Object.values(引号));返回{…state,quotesList};知道为什么这不会导致组件WillReceiverProps起火吗?