Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.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_Jquery - Fatal编程技术网

Javascript 清除包含阵列的阵列中的重复

Javascript 清除包含阵列的阵列中的重复,javascript,jquery,Javascript,Jquery,我有一个数组,如下所示 var myArray={}; myArray.students = []; myArray.Professors = []; var tmpArray1 = []; var tmpArray2 = []; for(var key =0; key<data.length; key++){ tmpArray1.push(name: data.studentName,id : data.studentId); tmpArray2.push({name

我有一个数组,如下所示

var myArray={};
myArray.students = [];
myArray.Professors = [];
var tmpArray1 = [];
var tmpArray2 = [];

for(var key =0; key<data.length; key++){
    tmpArray1.push(name: data.studentName,id : data.studentId);
    tmpArray2.push({name : data.profName,id :data.profId});   
    myArray.students.push({name: data.studentName,id : data.studentId});
    myArray.Professors.push({name : data.profName,id :data.profId);
}
var myArray={};
myArray.students=[];
myArray.Professors=[];
var tmpArray1=[];
var tmpArray2=[];

对于(var key=0;key假设
studentId
profId
是唯一的(而不是一对名称和id),可以使用

var myArray = {
        students: [],
        professors: []
    },
    tmpArray1 = [],
    tmpArray2 = [];

for(var key=0; key<data.length; key++){
    if(tmpArray1.indexOf(data.studentId) === -1) {
        tmpArray1.push(data.studentId);
        myArray.students.push({name: data.studentName, id: data.studentId});
    }
    if(tmpArray2.indexOf(data.profId) === -1) {
        tmpArray1.push(data.profId);
        myArray.professors.push({name: data.profName, id: data.profId);
    }
}
var myArray={
学生:【】,
教授:[]
},
tmpArray1=[],
tmpArray2=[];

对于(var key=0;key如果要在数组中执行distinct,请执行以下操作:

$(document).ready(function(){
    var data = [
        { "profId" : 1, "studentId" : 1, "profName" : "John", "studentName" : "Jack"},
        { "profId" : 2, "studentId" : 1, "profName" : "Steve", "studentName" : "Mark"},
        { "profId" : 3, "studentId" : 3, "profName" : "Gabe", "studentName" : "Martin"},
        { "profId" : 2, "studentId" : 1, "profName" : "Steve", "studentName" : "Mark"}  
    ];
    var Professors = [];
    var Students = [];

    for(var i = 0; i < data.length; i++){
        if(jQuery.inArray(data[i].profName, Professors) == -1){
            Professors.push(data[i].profName);
        }
        if(jQuery.inArray(data[i].studentName, Students) == -1){
            Students.push(data[i].studentName);
        }       
    }

    console.log("Professors:");
    for(var x = 0; x < Professors.length; x++){
        console.log("   " + Professors[x]);
    }
    console.log("Students:");   
    for(var z = 0; z < Students.length; z++){
        console.log("   " + Students[z]);
    }   
});
$(文档).ready(函数(){
风险值数据=[
{“profId”:1,“studentId”:1,“profName”:“John”,“studentName”:“Jack”},
{“profId”:2,“studentId”:1,“profName”:“Steve”,“studentName”:“Mark”},
{“profId”:3,“studentId”:3,“profName”:“Gabe”,“studentName”:“Martin”},
{“profId”:2,“studentId”:1,“profName”:“Steve”,“studentName”:“Mark”}
];
var=[];
var学生=[];
对于(变量i=0;i
我只会使用对象,因为对象有唯一的键

var myObj={};
myObj.students = {};
myObj.professors = {};

for(var key =0; key<data.length; key++){

    myObj.students[data[key].studentId] = data[key].studentName;
    myObj.professors[data[key].profId] = data[key].profName;

}

console.log(myObj)
var myObj={};
myObj.students={};
myObj.professors={};

对于(var key=0;keyI使用下划线进行类似的操作,看看是否能满足您的需要。我在您的示例中看到四次推送,没有检查。我看到的所有示例都使用一维数组,因此检查是使用$.inArray完成的。我如何做同样的操作,但检查studentId和studentName是否相同?@asawyer,@zzzbov我没有,看起来很有趣休息。谢谢!谢谢Hugo Tostes。但是,我想用一个包装器包装教授和学生——因此使用myArray包装器。