为什么obj变量赋值两次?(对象数组,javascript)
我想在提到名称后打印一个对象。但为什么它会变成两次,并且两个对象都打印出来呢 这是输出:为什么obj变量赋值两次?(对象数组,javascript),javascript,arrays,object,Javascript,Arrays,Object,我想在提到名称后打印一个对象。但为什么它会变成两次,并且两个对象都打印出来呢 这是输出: 1. Christ Evans { firstName: 'Christ', lastName: 'Evans', gender: 'Male', age: 38 } { firstName: 'Robert', lastName: 'Downey', gender: 'Male', age: 'Invalid Birth Year' } 2. Robert Downey { firstNa
1. Christ Evans
{ firstName: 'Christ', lastName: 'Evans', gender: 'Male', age: 38 }
{
firstName: 'Robert',
lastName: 'Downey',
gender: 'Male',
age: 'Invalid Birth Year'
}
2. Robert Downey
{ firstName: 'Christ', lastName: 'Evans', gender: 'Male', age: 38 }
{
firstName: 'Robert',
lastName: 'Downey',
gender: 'Male',
age: 'Invalid Birth Year'
}
我只想打印一次正确的对象,在提到名称之后
这是我的密码:
function changeMe(arr) {
let person = [];
for(i=0;i<arr.length;i++){
person.push(`${arr[i][0]} ${arr[i][1]}`)
}
for(i=0;i<person.length;i++){
var urut = i+1;
console.log(`${urut}. ${person[i]}`);
for(j=0;j<arr.length;j++){
var obj = {}
if(arr[j].length==4 && 2020-arr[j][3]>0){
obj.firstName = arr[j][0]
obj.lastName = arr[j][1]
obj.gender = arr[j][2]
obj.age = 2020 - arr[j][3]
}else{
obj.firstName = arr[j][0]
obj.lastName = arr[j][1]
obj.gender = arr[j][2]
obj.age = 'Invalid Birth Year'
}
console.log(obj)
}
}
}
// TEST CASES
changeMe([['Christ', 'Evans', 'Male', 1982], ['Robert', 'Downey', 'Male']]);
功能更改时间(arr){
让person=[];
对于(i=0;i求解:
function changeMe(arr) {
// you can only write your code here!
if(arr.length==0){
console.log( '""')
}else{
let person = [];
let person1 = [];
for(i=0;i<arr.length;i++){
person.push(`${i+1}. ${arr[i][0]} ${arr[i][1]}`)
}
for(j=0;j<arr.length;j++){
var subObj = {}
if(arr[j].length==4 && 2020-arr[j][3]>0){
subObj.firstName = arr[j][0]
subObj.lastName = arr[j][1]
subObj.gender = arr[j][2]
subObj.age = 2020 - arr[j][3]
}else{
subObj.firstName = arr[j][0]
subObj.lastName = arr[j][1]
subObj.gender = arr[j][2]
subObj.age = 'Invalid Birth Year'
}
person1.push(subObj)
}
for(i=0;i<person.length;i++){
for(j=0;j<person1.length;j++){
if(i==j){
console.log(person[i])
console.log(person1[i])
}
}
}
}
}
// TEST CASES
changeMe([['Christ', 'Evans', 'Male', 1982], ['Robert', 'Downey', 'Male']]); // 1. Christ Evans:
// { firstName: 'Christ',
// lastName: 'Evans',
// gender: 'Male',
// age: 37 }
// 2. Robert Downey:
// { firstName: 'Robert',
// lastName: 'Downey',
// gender: 'Male',
// age: 'Invalid Birth Year' }
changeMe([]); // ""
功能更改时间(arr){
//您只能在这里编写代码!
如果(arr.length==0){
console.log(“”)
}否则{
让person=[];
让person1=[];
for(i=0;i您正在通过内部for循环传入的数组上循环。此数组包含两个数组。因此,您将创建两个对象并记录这两个对象。您的内部循环对数组中的每个元素运行一次(作为persons.length=arr.length)变量i
和j
应该声明。我明白了……那么你的想法是什么,尼克?我应该添加break;还是什么?