JS数组-检查对象值是否重复
JS Array - Check for object value duplicate
我有一个数组,它将电子表格中的所有数据放入studentCAList。然而,也有学生有多种科目的情况。
下面是日志的一个例子,
姓名:Joseph
主题:英语
姓名:Peter
数学
姓名:Joseph
主题:科学
在这种情况下,如何确保Joseph没有插入到2数组中?正确的应该是
姓名:Joseph
科目:英语,科学
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 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 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;
}
}
相关文章:
- 为什么不推荐使用“with”?是否有更好或其他方法可以“下降”到对象的命名空间
- 遍历 JSON 对象并检查 URL 是否以某个值结尾
- 验证会话中是否存在对象's数组
- JS数组-检查对象值是否重复
- 如何检查数组中的对象是否等于选项值
- IndexedDB对象键:大小是否重要
- 测试对象是否相等和/或对象是否有更多的关键点,但仍然与共同的关键点相等
- 确定javascript中的html表对象是否具有<colgroup>是否
- 验证对象是否为null Javascript/Angularjs
- 使用js/jQuery检查对象(而不是元素)是否真的存在
- 确定var是否是javascript中的elementFinder对象的方法是什么
- 如何通过json对象选项卡中的Id来检查对象是否存在
- 是否可以在javascript中反序列化java对象
- 尝试简化检查对象键是否为true并将其推送到另一个对象
- jQuery-检测选择对象是否添加或删除了选项
- 将对象从另一个不可变的Map分配给Map是否意味着深度克隆
- 查找对象数组是否包含其中一个标记的最快方法
- 检查对象是否是mongo游标
- 检查对象的所有属性是否未定义
- JavaScript对象作为哈希?复杂性是否大于O(1)