Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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
Arrays 将数组对象转换为对象数组_Arrays_Object_Lodash_Underscore.js - Fatal编程技术网

Arrays 将数组对象转换为对象数组

Arrays 将数组对象转换为对象数组,arrays,object,lodash,underscore.js,Arrays,Object,Lodash,Underscore.js,我有以下格式的源数据(数组对象): 我希望将数据转换为以下格式(对象数组): 这是有点相反的 执行此操作的适当命令组合是什么,无论是使用lodash还是其他方法?组合map方法并通过键访问对象,我们可以实现预期结果: data.value.map((s, i) => ({value: s, dayOfWeek: data.dayOfWeek[i], dayOrNight: data.dayOrNight[i]})); 例如: let数据={ 价值:[ 59, 58, 62, 5

我有以下格式的源数据(数组对象):

我希望将数据转换为以下格式(对象数组):

这是有点相反的


执行此操作的适当命令组合是什么,无论是使用lodash还是其他方法?

组合
map
方法并通过键访问对象,我们可以实现预期结果:

data.value.map((s, i) => ({value: s, 
   dayOfWeek: data.dayOfWeek[i], dayOrNight: data.dayOrNight[i]}));
例如:

let数据={
价值:[
59, 58, 62, 58, 56, 57, 57, 65, 81, 81
],
星期五:[
‘星期四’、‘星期五’、‘星期六’、‘星期四’、‘星期五’、‘星期五’,
“星期五”、“星期一”、“星期五”、“星期二”
],
白天或晚上:[
“N”、“D”、“N”、“D”、“D”、“N”、“N”、“N”、“N”、“N”
]
};
const result=data.value.map((s,i)=>({value:s,
dayOfWeek:data.dayOfWeek[i],dayOrNight:data.dayOrNight[i]});

控制台日志(结果)整洁!有没有不必包含属性名称的方法?理想情况下,它将是通用的和未来的证据来处理任何数量的不同属性,而不仅仅是那些碰巧出现在数据中的属性。除了可能命名用作映射函数基础的属性(即此处的
value
)。。。其余的最好不要特别命名。@drmrbrewer谢谢!如果没有属性名称,您将插入哪些名称来代替dayOrNight、dayOfWeek、value?对不起,“不包括属性名称”的意思是不将它们硬编码到转换函数中,而只是从源数据对象动态读取它们。这样,如果稍后向数据对象添加新数组(使用新属性名),它将自动由转换函数处理。。。可能只是在对象中的关键点之间循环。。。除非你先到,否则我就试试看@drmrbrewer我稍微修改了你的方法,请看我的更新回复。啊,是的,巧妙地避开了任意使用一个对象属性作为映射函数基础的做法。
[
    {
        value: 59,
        dayOfWeek: 'Thursday',
        dayOrNight: 'N'
    },
    {
        value: 58,
        dayOfWeek: 'Friday',
        dayOrNight: 'D'
    },
    {
        value: 62,
        dayOfWeek: 'Saturday',
        dayOrNight: 'N'
    },
    ...
]
data.value.map((s, i) => ({value: s, 
   dayOfWeek: data.dayOfWeek[i], dayOrNight: data.dayOrNight[i]}));