gpt4 book ai didi

javascript - 查找数组中不存在的值并将其插入到数组中

转载 作者:行者123 更新时间:2023-12-02 23:19:43 25 4
gpt4 key购买 nike

我有以下数组

var array = {"week1":[{"id":1,"name":"x","mark":"20"},{"id":2,"name":"y","mark":"30"}],"week2":[{"id":1,"name":"x","mark":"40"},{"id":2,"name":"y","mark":"60"},{"id":3,"name":"z","mark":"10"}]}

我还有一系列学生 ID,如下

var studentId = ["1","2","3"]

我想迭代数组并将缺少的学生 ID 插入每周并将标记设置为零。

var keys = Object.keys(array);
for(var x =0; x<studentId .length; x++)
{
var boolFlag = false;
for(var i=0; i<keys.length;i++)
{
for(var j=0; j=array [keys[i]].length; j++ )
{

if(studentId [x].id == array [keys[i]][j].id)
{
boolFlag = true;
break;

}
}
if(!boolFlag )
{
array [keys[i]].push({id:studentId [x].id, mark:0});
}
}
}

如果所有周都不完全包含学生 ID,则此方法有效。但是,如果任何一周包含 StudentId,则这不会正确插入 id。我的代码有什么问题?

预期结果:

var result =   {"week1":[{"id":1,"name":"x","mark":"20"},{"id":2,"name":"y","mark":"30"},{"id":3,"mark":"0"}],"week2":[{"id":1,"name":"x","mark":"40"},{"id":2,"name":"y","mark":"60"},{"id":3,"name":"z","mark":"10"}]}

更新

var studentId = [{id:"1", name:"x"},{id:"2", name:"y"},{id:"3", name:"z"}]

最佳答案

var array = {
"week1":[
{"id":1,"name":"x","mark":"20"},
{"id":2,"name":"y","mark":"30"}
],
"week2":[
{"id":1,"name":"x","mark":"40"},
{"id":2,"name":"y","mark":"60"},
{"id":3,"name":"z","mark":"10"}
]
};
var studentId = [
{id:"1", name:"x"},
{id:"2", name:"y"},
{id:"3", name:"z"}
]

for(var week in array){
for(var stId of studentId){
var weekVal = array[week];
if(!weekVal.filter(function(st){ return st.id == stId.id; })[0])
weekVal.push({id:stId.id, name: stId.name, mark:"0"});
}
}

console.log(array);

关于javascript - 查找数组中不存在的值并将其插入到数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57000863/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com