我有一系列的对象(学生的名字,成绩等等)我希望在我创建的新的空数组中添加名为"Jody“(例如)的任何对象。但是,当我试图只打印新对象数组的名称时,我会得到undefined。注:我不能使用let,const等。
知道我在这里错过了什么吗?
var student;
var newStudents = [];
var students = [{
name: 'Odelia',
track: 'Accounting',
achievements: '26',
points: '2260'
}, {
name: 'Jody',
track: 'Web Design',
achievements: '12',
points: '890'
}, {
name: 'Yann',
track: 'Javascript',
achievements: '10',
points: '2266'
}, {
name: 'Max',
track: 'Marketing',
achievements: '13',
points: '1010'
}, {
name: 'Jody',
track: 'iOS',
achievements: '9',
points: '1002'
}, ]
for (var i = 0; i < students.length; i++) {
student = students[i];
if (student.name === 'Jody') {
newStudents.push(student);
}
}
console.log(newStudent.name);输出:
0:
achievements: "12"
name: "Jody"
points: "890"
track: "Web Design"
__proto__: Object
1:
achievements: "9"
name: "Jody"
points: "1002"
track: "iOS"
__proto__: Object
length: 2
__proto__: Array(0)
undefined发布于 2018-04-24 09:23:22
应该是newStudents而不是newStudent
console.log(newStudents[0].name);另外,newStudents是数组。
发布于 2018-04-24 09:26:52
您正在尝试在循环之外打印名称。再检查一遍。
应该是这样的:
for (var i = 0; i < students.length; i++) {
student = students[i];
console.log(newStudent.name);
if (student.name === 'Jody') {
newStudents.push(student);
}
}发布于 2018-04-24 09:32:56
试试看,这是我的工作;
var newStudents = [];
var student;
var students = [
{name:'Odelia',
track:'Accounting',
achievements:'26',
points: '2260'
},
{name:'Jody',
track:'Web Design',
achievements:'12',
points: '890'
},
{name:'Yann',
track:'Javascript',
achievements:'10',
points: '2266'
},
{name:'Max',
track:'Marketing',
achievements:'13',
points: '1010'
},
{name:'Jody',
track:'iOS',
achievements:'9',
points: '1002'
},
]
for(var i=0;i<students.length;i++){
student = students[i];
if(student.name === 'Jody'){
newStudents.push(student);
}
}
console.log(newStudents[0].name);https://stackoverflow.com/questions/49997876
复制相似问题