Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.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 JS数组-检查对象值是否重复_Javascript_Google Apps Script_Google Spreadsheet Api - Fatal编程技术网

Javascript JS数组-检查对象值是否重复

Javascript JS数组-检查对象值是否重复,javascript,google-apps-script,google-spreadsheet-api,Javascript,Google Apps Script,Google Spreadsheet Api,我有一个数组,它将电子表格中的所有数据放入studentCCAList。 然而,在某些情况下,学生有多个科目 下面是一个日志示例 姓名:Joseph 主题:英语 姓名:彼得 数学 姓名:Joseph 主题:科学 在这种情况下,如何确保Joseph未插入到2数组中? 正确的答案应该是 姓名:约瑟夫 科目:英语、科学 var studentDataList = []; var studentCount = 0; for (var i = 0; i < sheetData.length; ++

我有一个数组,它将电子表格中的所有数据放入studentCCAList。 然而,在某些情况下,学生有多个科目

下面是一个日志示例

姓名:Joseph
主题:英语

姓名:彼得
数学

姓名:Joseph
主题:科学

在这种情况下,如何确保Joseph未插入到2数组中? 正确的答案应该是

姓名:约瑟夫
科目:英语、科学

var studentDataList = [];
var studentCount = 0;

for (var i = 0; i < sheetData.length; ++i) {
    var row = sheetData[i];
    var studentName = row[0];
    var studentSubject = row[1];

    studentDataList[studentCount] = {};
    studentDataList[studentCount].subject = studentSubject;
    studentDataList[studentCount].name = studentName;
    studentCount++;

  }
var studentDataList=[];
var studentCount=0;
对于(变量i=0;i
我们可以借助另一个阵列来完成这项工作。下面的代码可以帮助您

var studentDataList = [];
var studentTrack = []; //array which prevents the duplicate values

for (var i = 0; i < sheetData.length; ++i) {
    var row = sheetData[i];
    var studentName = row[0];
    var studentSubject = row[1];

    var index = studentTrack.indexOf(studentName);

    if(index == -1){
      studentDataList.push({
        name: studentName,
        subject: studentSubject
      });

      studentTrack.push(studentName);
    }else{
      studentDataList[index].subject += ", "+studentSubject;
    }

}
var studentDataList=[];
var studentTrack=[]//防止重复值的数组
对于(变量i=0;i
我们可以借助另一个阵列来完成这项工作。下面的代码可以帮助您

var studentDataList = [];
var studentTrack = []; //array which prevents the duplicate values

for (var i = 0; i < sheetData.length; ++i) {
    var row = sheetData[i];
    var studentName = row[0];
    var studentSubject = row[1];

    var index = studentTrack.indexOf(studentName);

    if(index == -1){
      studentDataList.push({
        name: studentName,
        subject: studentSubject
      });

      studentTrack.push(studentName);
    }else{
      studentDataList[index].subject += ", "+studentSubject;
    }

}
var studentDataList=[];
var studentTrack=[]//防止重复值的数组
对于(变量i=0;i
我们可以借助另一个阵列来完成这项工作。下面的代码可以帮助您

var studentDataList = [];
var studentTrack = []; //array which prevents the duplicate values

for (var i = 0; i < sheetData.length; ++i) {
    var row = sheetData[i];
    var studentName = row[0];
    var studentSubject = row[1];

    var index = studentTrack.indexOf(studentName);

    if(index == -1){
      studentDataList.push({
        name: studentName,
        subject: studentSubject
      });

      studentTrack.push(studentName);
    }else{
      studentDataList[index].subject += ", "+studentSubject;
    }

}
var studentDataList=[];
var studentTrack=[]//防止重复值的数组
对于(变量i=0;i
我们可以借助另一个阵列来完成这项工作。下面的代码可以帮助您

var studentDataList = [];
var studentTrack = []; //array which prevents the duplicate values

for (var i = 0; i < sheetData.length; ++i) {
    var row = sheetData[i];
    var studentName = row[0];
    var studentSubject = row[1];

    var index = studentTrack.indexOf(studentName);

    if(index == -1){
      studentDataList.push({
        name: studentName,
        subject: studentSubject
      });

      studentTrack.push(studentName);
    }else{
      studentDataList[index].subject += ", "+studentSubject;
    }

}
var studentDataList=[];
var studentTrack=[]//防止重复值的数组
对于(变量i=0;i
此代码将以更高效的方式完成工作

var studentDataList = [];
var sheetData = [['Foo','math'],['Foo','science'],['Foo1','math']];
var pushData = function(obj, arr){
    for(var i =0; i<arr.length; i++ ){
        if(arr[i].name === obj.name){
           arr[i].subject+= ', '+obj.subject;
           return;
        }
    }
    arr.push(obj);
}
for (var i = 0; i < sheetData.length; i++) {
    var row = sheetData[i];
    pushData({
        name: row[0],
        subject: row[1]
      },studentDataList);
}
var studentDataList=[];
var sheetData=['Foo'、'math']、['Foo'、'science']、['Foo1'、'math'];
var pushData=功能(obj、arr){

对于(var i=0;i,此代码将以更有效的方式完成此工作

var studentDataList = [];
var sheetData = [['Foo','math'],['Foo','science'],['Foo1','math']];
var pushData = function(obj, arr){
    for(var i =0; i<arr.length; i++ ){
        if(arr[i].name === obj.name){
           arr[i].subject+= ', '+obj.subject;
           return;
        }
    }
    arr.push(obj);
}
for (var i = 0; i < sheetData.length; i++) {
    var row = sheetData[i];
    pushData({
        name: row[0],
        subject: row[1]
      },studentDataList);
}
var studentDataList=[];
var sheetData=['Foo'、'math']、['Foo'、'science']、['Foo1'、'math'];
var pushData=功能(obj、arr){

对于(var i=0;i,此代码将以更有效的方式完成此工作

var studentDataList = [];
var sheetData = [['Foo','math'],['Foo','science'],['Foo1','math']];
var pushData = function(obj, arr){
    for(var i =0; i<arr.length; i++ ){
        if(arr[i].name === obj.name){
           arr[i].subject+= ', '+obj.subject;
           return;
        }
    }
    arr.push(obj);
}
for (var i = 0; i < sheetData.length; i++) {
    var row = sheetData[i];
    pushData({
        name: row[0],
        subject: row[1]
      },studentDataList);
}
var studentDataList=[];
var sheetData=['Foo'、'math']、['Foo'、'science']、['Foo1'、'math'];
var pushData=功能(obj、arr){

对于(var i=0;i,此代码将以更有效的方式完成此工作

var studentDataList = [];
var sheetData = [['Foo','math'],['Foo','science'],['Foo1','math']];
var pushData = function(obj, arr){
    for(var i =0; i<arr.length; i++ ){
        if(arr[i].name === obj.name){
           arr[i].subject+= ', '+obj.subject;
           return;
        }
    }
    arr.push(obj);
}
for (var i = 0; i < sheetData.length; i++) {
    var row = sheetData[i];
    pushData({
        name: row[0],
        subject: row[1]
      },studentDataList);
}
var studentDataList=[];
var sheetData=['Foo'、'math']、['Foo'、'science']、['Foo1'、'math'];
var pushData=功能(obj、arr){

对于(var i=0;ii)如果名称是唯一的,则可以将它们用作以数组为值的对象中的键。然后,可以检查该键是否存在,以及是否未创建该键,并将主题添加到数组中,否则将其他主题添加到数组中。可以使用$.inArray()jQuery的函数,用于在填充array.student.name之前确保名称已在数组中或不在数组中。随着时间的推移,似乎几乎可以肯定名称不会唯一。如果名称是唯一的,则可以将它们用作对象中的键,并将数组作为值。然后,您可以检查键是否存在以及是否未创建该键,并将主题添加到arra中y、 否则,将附加主题添加到数组中。您可以使用$.inArray()jQuery的函数,用于在填充array.student.name之前确保名称已在数组中或不在数组中。随着时间的推移,似乎几乎可以肯定名称不会唯一。如果名称是唯一的,则可以将它们用作对象中的键,并将数组作为值。然后,您可以检查键是否存在以及是否未创建该键,并将主题添加到arra中y、 否则,将附加主题添加到数组中。您可以使用$.inArray()jQuery的函数,用于在填充array.student.name之前确保名称已在数组中或不在数组中。随着时间的推移,似乎几乎可以肯定名称不会唯一。如果名称是唯一的,则可以将它们用作对象中的键,并将数组作为值。然后,您可以检查键是否存在以及是否未创建该键,并将主题添加到arra中y、 否则,将附加主题添加到数组中。在填充数组之前,您可以使用jQuery的$.inArray()函数确保名称已在数组中或不在数组中。student.name几乎肯定不会随时间而唯一请注意
array.prototype.indexOf()