我有一个数组如下
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);
}
这个数组包含学生和教授的傻瓜。我试图通过用临时阵列检查来清理它,并且只推送那些具有独特学生ID并且教授它的学生和教授,但它似乎没有正常工作。我希望myArray有独特的学生和教授
答案 0 :(得分:0)
假设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);
}
}
答案 1 :(得分:0)
如果您想在数组中执行不同的操作,请执行以下操作:
$(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]);
}
});
答案 2 :(得分:0)
我会使用一个对象,因为对象有唯一的键。
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)