首页 > 解决方案 > 使用 day 对象检查数组

问题描述

我有一个对象数组,

DayEffort:[{
    Description: null
    Effort: 2
    EffortDate: "2019-05-20T00:00:00"
    day:Sunday
    Status: "In Progress"
   },       
    { 
    Description: null
    Effort: 1.5
    EffortDate: "2019-05-22T00:00:00"
    Day : Tuesday 
    Status: "In Progress"
    },
    {

    Description: null
    Effort: 1.5
    EffortDate: "2019-05-23T00:00:00"
    Day : Thursday
    Status: "In Progress"

}]

其中包含day属性,如果day是sunday,则需要push新数组的零索引,Monday在第一个索引,如果不匹配push null值,

异常结果:

NewArray : [
0:{Description: null Effort: 2 EffortDate: "2019-05-20T00:00:00" day:Sunday Status: "In Progress"},
1: null,
2: {Description: null Effort: 2 EffortDate: "2019-05-20T00:00:00" day:Tuesday Status: "In Progress"},
3: null,
4: {Description: null Effort: 2 EffortDate: "2019-05-20T00:00:00" day:Thursday Status: "InProgress"},
5: null,
6: null,
]

试过了,

var DayArray = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday', 'Saterday'];  
for(var k = 0 ; k < DayArray.length; k++){  
                     for(var m = 0; m < DayEffort.length; m++){                        

                         if(DayArray[k] == DayEffort[m].day){
                             NewArray.push(DayEffort[m]);

                         }
                         else{
                             NewArray.push(null);                                                            
                         }

                     }                      
                 }

请帮我,

标签: javascripthtmljqueryarraysapi

解决方案


像这样(在修复无效的对象值和缺少逗号之后)

const DayEffort = [{ Description: null, Effort: 2, EffortDate: "2019-05-20T00:00:00", Day: "Sunday", Status: "In Progress" }, { Description: null, Effort: 1.5, EffortDate: "2019-05-22T00:00:00", Day: "Tuesday", Status: "In Progress" }, { Description: null, Effort: 1.5, EffortDate: "2019-05-23T00:00:00", Day: "Thursday", Status: "In Progress" } ];

let NewArray= new Array(7).fill(null);
const DayArray = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];

DayEffort.forEach(item => NewArray[DayArray.indexOf(item.Day)] = item);
console.log(NewArray);


推荐阅读