Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.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
Javascript 替换对象数组_Javascript_Arrays_Lodash - Fatal编程技术网

Javascript 替换对象数组

Javascript 替换对象数组,javascript,arrays,lodash,Javascript,Arrays,Lodash,下面是一组对象 const array = [ { home1: "05:45", dayOfWeek: 1, away: "09:30"}, { home1: "05:15", dayOfWeek: 2, away: "09:30"}, { home1: "17:30", dayOfWeek: 5, away: "09:30"}, { home1: "16:30", dayOfWeek: 7, away: "09:30"} ] 我每周有四天(1,2,5,7)。现在我需

下面是一组对象

const array = [
   { home1: "05:45", dayOfWeek: 1, away: "09:30"},
   { home1: "05:15", dayOfWeek: 2, away: "09:30"},
   { home1: "17:30", dayOfWeek: 5, away: "09:30"},
   { home1: "16:30", dayOfWeek: 7, away: "09:30"}
]
我每周有四天(1,2,5,7)。现在我需要用虚拟对象(
{home1:05:30],dayOfWeek:7,away:09:30}
)推其余三个(3,4,6)

现在,逻辑部分是我不知道数组中存在哪个
dayOfWeek
。可能只有一个、两个、三个或空白。每次我都需要在该数组中推7天

如何做到这一点?请告诉我最好的方法


谢谢你

一个选项是对数组中迄今为止包含的天数进行
设置
,然后从1到7进行迭代,
将新对象推送到数组中,如果该日期不包含在该设置中:

const数组=[
{home1:“05:45”,dayOfWeek:1,away:“09:30”},
{home1:“05:15”,dayOfWeek:2,away:“09:30”},
{home1:“17:30”,dayOfWeek:5,away:“09:30”},
{home1:“16:30”,dayOfWeek:7,away:“09:30”}
];
const dummy={home1:“05:30”,away:“09:30”};
const days=新集合(array.map({dayOfWeek})=>dayOfWeek));

对于(设i=1;i一个选项是对数组中迄今为止包含的天数进行
设置,然后从1迭代到7,
将新对象推送到数组中,如果该日期不包含在该设置中:

const数组=[
{home1:“05:45”,dayOfWeek:1,away:“09:30”},
{home1:“05:15”,dayOfWeek:2,away:“09:30”},
{home1:“17:30”,dayOfWeek:5,away:“09:30”},
{home1:“16:30”,dayOfWeek:7,away:“09:30”}
];
const dummy={home1:“05:30”,away:“09:30”};
const days=新集合(array.map({dayOfWeek})=>dayOfWeek));
对于(设i=1;i您可以使用“Array.from”并循环7次,如下所示

const数组=[
{home1:“05:45”,dayOfWeek:1,away:“09:30”},
{home1:“05:15”,dayOfWeek:2,away:“09:30”},
{home1:“17:30”,dayOfWeek:5,away:“09:30”},
{home1:“16:30”,dayOfWeek:7,away:“09:30”}
]
//按星期几对数组排序。如果您确定数组将始终排序,请忽略此步骤
array.sort((a,b)=>a.dayOfWeek-b.dayOfWeek)
var result=Array.from({length:7}
,(wk,i)=>数组[0]。dayOfWeek==i+1
?array.shift()
:{home1:05:30,dayOfWeek:i+1,away:09:30})
console.log(result)
您可以使用“Array.from”并循环7次,如下所示

const数组=[
{home1:“05:45”,dayOfWeek:1,away:“09:30”},
{home1:“05:15”,dayOfWeek:2,away:“09:30”},
{home1:“17:30”,dayOfWeek:5,away:“09:30”},
{home1:“16:30”,dayOfWeek:7,away:“09:30”}
]
//按星期几对数组排序。如果您确定数组将始终排序,请忽略此步骤
array.sort((a,b)=>a.dayOfWeek-b.dayOfWeek)
var result=Array.from({length:7}
,(wk,i)=>数组[0]。dayOfWeek==i+1
?array.shift()
:{home1:05:30,dayOfWeek:i+1,away:09:30})

console.log(result)
使用数组。reduce创建一组现有天数。现在迭代并检查集合中是否有条目,如果没有,则将对象推送到数组中

const数组=[
{home1:“05:45”,dayOfWeek:1,away:“09:30”},
{home1:“05:15”,dayOfWeek:2,away:“09:30”},
{home1:“17:30”,dayOfWeek:5,away:“09:30”},
{home1:“16:30”,dayOfWeek:7,away:“09:30”}
];
让daysSet=array.reduce((a,c)=>a.add(c.dayOfWeek),newset());
让obj={home1:“16:30”,dayOfWeek:7,away:“09:30”};

对于(让i=1;i使用数组。reduce创建一组现有天数。现在迭代并检查集合中是否有条目,如果没有,则将对象推送到数组中

const数组=[
{home1:“05:45”,dayOfWeek:1,away:“09:30”},
{home1:“05:15”,dayOfWeek:2,away:“09:30”},
{home1:“17:30”,dayOfWeek:5,away:“09:30”},
{home1:“16:30”,dayOfWeek:7,away:“09:30”}
];
让daysSet=array.reduce((a,c)=>a.add(c.dayOfWeek),newset());
让obj={home1:“16:30”,dayOfWeek:7,away:“09:30”};
for(设i=1;i可以首先使用
map()
获取数组中存在的所有dayOfWeek。然后使用for循环通过检查数组中是否存在该dayOfWeek来插入该dayOfWeek

您可以尝试以下方法:

const数组=[
{home1:“05:45”,dayOfWeek:1,away:“09:30”},
{home1:“05:15”,dayOfWeek:2,away:“09:30”},
{home1:“17:30”,dayOfWeek:5,away:“09:30”},
{home1:“16:30”,dayOfWeek:7,away:“09:30”}
]
让exist=array.map(d=>d.dayOfWeek);
for(设i=1;i可以首先使用
map()
获取数组中存在的所有dayOfWeek。然后使用for循环通过检查数组中是否存在该dayOfWeek来插入该dayOfWeek

您可以尝试以下方法:

const数组=[
{home1:“05:45”,dayOfWeek:1,away:“09:30”},
{home1:“05:15”,dayOfWeek:2,away:“09:30”},
{home1:“17:30”,dayOfWeek:5,away:“09:30”},
{home1:“16:30”,dayOfWeek:7,away:“09:30”}
]
让exist=array.map(d=>d.dayOfWeek);

对于(设i=1;i是否需要按顺序排列?@CertainPerformance没有顺序可以是任何东西。您可以循环当前数组并在数组中存储星期几,然后循环其他7天的虚拟数组,检查其是否在前一个数组中,然后不需要插入这些天。希望您能理解它是否需要按顺序排列?@CertainPerformance No order可以可以是任何东西。你可以循环当前数组并在数组中存储星期几,然后循环其他7天虚拟数组并检查它是否在前一个数组中,然后不需要插入这些天。希望你能得到。谢谢你,我没有测试它,但我做了一次追加投票,因为第一个答案对我有效。请你对我的问题进行追加投票。否则我会I’我没有测试,但我投了一票,因为第一个答案对我有用。请你投我的问题的一票。否则我会被问阻止。请你投我的问题的一票。