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包装器。