将数组编号 2 和 3 访问到一个字符串数组中
access array number 2 and 3 to be in one string array
如何输出:
ID: 0001
Name: Mike
Birthday: London 21/05/1989
Hobby: Reading
我下面的代码是未定义的,我希望数组城市+日期在生日中在一起。
我的代码不是,请检查下面的代码:
var input = [
["0001", "Mike", "London", "21/05/1989", "Reading"],
["0002", "Sara", "Manchester", "10/10/1992", "Swimming"],
["0003", "John", "Kansas", "25/12/1965", "Cooking"],
["0004", "Dave", "Nevada", "6/4/1970", "going to gym"]
];
var data = ["ID: ", "Name: ", "Birthday: ", "Hobby: "];
for(var i = 0 ; i <= input.length ; i++){
for(var j = 0 ; j <= input.length ; j++){
for(var i = 0 ; i <= data.length; i++){
console.log(data[i] + input[j][i])
};
};
};
是否有任何修复此逻辑的建议?为此,我只想使用循环。
由于数组中的索引是基于 0 并且 i=0
您必须更改
i <= input.length
到
i < input.length
//contoh input
var input = [
["0001", "Mike", "London", "21/05/1989", "Reading"],
["0002", "Sara", "Manchester", "10/10/1992", "Swimming"],
["0003", "John", "Kansas", "25/12/1965", "Cooking"],
["0004", "Dave", "Nevada", "6/4/1970", "going to gym"]
];
var data = ["ID: ", "Name: ", "Birthday: ", "Hobby: "];
for(var i = 0 ; i < input.length ; i++){
for(var j = 0 ; j < input.length ; j++){
for(var i = 0 ; i < data.length; i++){
if(i == 2)
console.log(data[i] + input[j][i] +' '+ input[j][i+1])
else if(i == 3)
console.log(data[i] + input[j][i+1])
else
console.log(data[i] + input[j][i])
};
console.log('=================')
};
};
您可以使用array.map
var input = [
["0001", "Mike", "London", "21/05/1989", "Reading"],
["0002", "Sara", "Manchester", "10/10/1992", "Swimming"],
["0003", "John", "Kansas", "25/12/1965", "Cooking"],
["0004", "Dave", "Nevada", "6/4/1970", "going to gym"]
];
var expectedOutput = input.map(a=>{
return {ID:a[0],Name:a[1],Birthday:a[2] + ' ' + a[3],Hobby:a[4]}
})
console.log('string output',JSON.stringify(expectedOutput));
console.log(expectedOutput);
尝试更改第三个 "for" 语句中的变量名称。我没有深入研究循环,但我相信您不想在第三个循环中使用变量 "i" 。尝试将其命名为 "var k"
var input = [
["0001", "Mike", "London", "21/05/1989", "Reading"],
["0002", "Sara", "Manchester", "10/10/1992", "Swimming"],
["0003", "John", "Kansas", "25/12/1965", "Cooking"],
["0004", "Dave", "Nevada", "6/4/1970", "going to gym"]
];
let output= input.map(([ID, Name, Country, DOB, Hobby]) =>{
return({
ID,
Name,
Birthday: `${Country} ${DOB}`,
Hobby
})
})
console.log(output)
试试这个
//contoh input
var input = [
["0001", "Mike", "London", "21/05/1989", "Reading"],
["0002", "Sara", "Manchester", "10/10/1992", "Swimming"],
["0003", "John", "Kansas", "25/12/1965", "Cooking"],
["0004", "Dave", "Nevada", "6/4/1970", "going to gym"]
];
var data = ["ID: ", "Name: ", "Birthday: ", "Hobby: "];
// for(var i = 0 ; i < data.length ; i++){
// console.log(data[i]);
var k = 0;
for(var i = 0 ; i < input.length ; i++){
for(var j = 0; j <= data.length ; j++){
if(j == 2 ){
console.log(data[k] + input[i][j]+ " " + input[i][j+1]);
j++;
}
else
console.log(data[k] + input[i][j]);
k++;
}k=0;
}
这应该有效。只需在打印前检查必要的条件即可。
并检查是否打印由越界索引指向的数组值。这就是它显示未定义的原因。
var input = [
["0001", "Mike", "London", "21/05/1989", "Reading"],
["0002", "Sara", "Manchester", "10/10/1992", "Swimming"],
["0003", "John", "Kansas", "25/12/1965", "Cooking"],
["0004", "Dave", "Nevada", "6/4/1970", "going to gym"]
];
var data = ["ID: ", "Name: ", "Birthday: ", "Hobby: "];
for (var j = 0; j < input.length; j++) {
for (var i = 0; i < input[j].length; i++) {
if (i === 2)
console.log(data[i] + input[j][i] + " " + input[j][i + 1]);
else if (i === 3)
console.log(data[i] + input[j][i+1]);
};
};
你可以先把城市+日期合并到input
数组中,这样循环会更容易
var expectedOutput = input.map(a=>{
return [a[0], a[1], a[2]+' '+a[3], a[4]]
})
使用本机 ForLoop 并在 one 循环中你可以做:
//contoh input
var input = [
["0001", "Mike", "London", "21/05/1989", "Reading"],
["0002", "Sara", "Manchester", "10/10/1992", "Swimming"],
["0003", "John", "Kansas", "25/12/1965", "Cooking"],
["0004", "Dave", "Nevada", "6/4/1970", "going to gym"]
];
var data = ["ID: ", "Name: ", "Birthday: ", "Hobby: "];
for(var i = 0 ; input[i] && input[i].length ? i < input[i].length : null ; i++) {
console.log(data[0] + input[i][0]+ ',', data[1] + input[i][1]+ ',', data[2]+input[i][2] + ' '+ input[i][3]+ ',', data[3]+ input[i][4]);
};
PS: 使用map,forEach等ES6操作符更优雅..
let output = input.map( item => {
return ({ID:item[0],name:item[1],birthDay:item[2]+item[3],hobby:item[4]})
})
希望对您有所帮助
//contoh input
var input = [
["0001", "Mike", "London", "21/05/1989", "Reading"],
["0002", "Sara", "Manchester", "10/10/1992", "Swimming"],
["0003", "John", "Kansas", "25/12/1965", "Cooking"],
["0004", "Dave", "Nevada", "6/4/1970", "going to gym"]
];
var data = ["ID: ", "Name: ", "Birthday: ", "Hobby: "];
// for(var i = 0 ; i < data.length ; i++){
// console.log(data[i]);
var check = 0;
for(var j = 0 ; j < input.length ; j++){
var count = 0;
outerloop:
for(var i = 0 ; i < data.length; i++){
if(count==2){
console.log(data[i] + input[j][i] +' '+ input[j][i+1]);
count = 0;
check = 1;
continue outerloop;
} if(check==1){
count++;
console.log(data[i] + input[j][i+1]);
check = 0;
}
else{
count++;
console.log(data[i] + input[j][i]);
}
};
};
简介:
我使用了一个 if condition
和 1 ifelse condition
,并为两个条件使用了 2 个变量,第一个变量仅在条件为计数变量时检查索引是否为生日,如果是则连接当前值它是相邻值,然后我使用了一个检查变量,它在那个 if 条件下为真,我们将继续循环而不深入该迭代。 check 变量仅用于标识您在 check 为 0 时实现的正常迭代,如果为 1,则将显示相邻索引。希望对你有帮助。
如何输出:
ID: 0001
Name: Mike
Birthday: London 21/05/1989
Hobby: Reading
我下面的代码是未定义的,我希望数组城市+日期在生日中在一起。
我的代码不是,请检查下面的代码:
var input = [
["0001", "Mike", "London", "21/05/1989", "Reading"],
["0002", "Sara", "Manchester", "10/10/1992", "Swimming"],
["0003", "John", "Kansas", "25/12/1965", "Cooking"],
["0004", "Dave", "Nevada", "6/4/1970", "going to gym"]
];
var data = ["ID: ", "Name: ", "Birthday: ", "Hobby: "];
for(var i = 0 ; i <= input.length ; i++){
for(var j = 0 ; j <= input.length ; j++){
for(var i = 0 ; i <= data.length; i++){
console.log(data[i] + input[j][i])
};
};
};
是否有任何修复此逻辑的建议?为此,我只想使用循环。
由于数组中的索引是基于 0 并且 i=0
您必须更改
i <= input.length
到
i < input.length
//contoh input
var input = [
["0001", "Mike", "London", "21/05/1989", "Reading"],
["0002", "Sara", "Manchester", "10/10/1992", "Swimming"],
["0003", "John", "Kansas", "25/12/1965", "Cooking"],
["0004", "Dave", "Nevada", "6/4/1970", "going to gym"]
];
var data = ["ID: ", "Name: ", "Birthday: ", "Hobby: "];
for(var i = 0 ; i < input.length ; i++){
for(var j = 0 ; j < input.length ; j++){
for(var i = 0 ; i < data.length; i++){
if(i == 2)
console.log(data[i] + input[j][i] +' '+ input[j][i+1])
else if(i == 3)
console.log(data[i] + input[j][i+1])
else
console.log(data[i] + input[j][i])
};
console.log('=================')
};
};
您可以使用array.map
var input = [
["0001", "Mike", "London", "21/05/1989", "Reading"],
["0002", "Sara", "Manchester", "10/10/1992", "Swimming"],
["0003", "John", "Kansas", "25/12/1965", "Cooking"],
["0004", "Dave", "Nevada", "6/4/1970", "going to gym"]
];
var expectedOutput = input.map(a=>{
return {ID:a[0],Name:a[1],Birthday:a[2] + ' ' + a[3],Hobby:a[4]}
})
console.log('string output',JSON.stringify(expectedOutput));
console.log(expectedOutput);
尝试更改第三个 "for" 语句中的变量名称。我没有深入研究循环,但我相信您不想在第三个循环中使用变量 "i" 。尝试将其命名为 "var k"
var input = [
["0001", "Mike", "London", "21/05/1989", "Reading"],
["0002", "Sara", "Manchester", "10/10/1992", "Swimming"],
["0003", "John", "Kansas", "25/12/1965", "Cooking"],
["0004", "Dave", "Nevada", "6/4/1970", "going to gym"]
];
let output= input.map(([ID, Name, Country, DOB, Hobby]) =>{
return({
ID,
Name,
Birthday: `${Country} ${DOB}`,
Hobby
})
})
console.log(output)
试试这个
//contoh input
var input = [
["0001", "Mike", "London", "21/05/1989", "Reading"],
["0002", "Sara", "Manchester", "10/10/1992", "Swimming"],
["0003", "John", "Kansas", "25/12/1965", "Cooking"],
["0004", "Dave", "Nevada", "6/4/1970", "going to gym"]
];
var data = ["ID: ", "Name: ", "Birthday: ", "Hobby: "];
// for(var i = 0 ; i < data.length ; i++){
// console.log(data[i]);
var k = 0;
for(var i = 0 ; i < input.length ; i++){
for(var j = 0; j <= data.length ; j++){
if(j == 2 ){
console.log(data[k] + input[i][j]+ " " + input[i][j+1]);
j++;
}
else
console.log(data[k] + input[i][j]);
k++;
}k=0;
}
这应该有效。只需在打印前检查必要的条件即可。 并检查是否打印由越界索引指向的数组值。这就是它显示未定义的原因。
var input = [
["0001", "Mike", "London", "21/05/1989", "Reading"],
["0002", "Sara", "Manchester", "10/10/1992", "Swimming"],
["0003", "John", "Kansas", "25/12/1965", "Cooking"],
["0004", "Dave", "Nevada", "6/4/1970", "going to gym"]
];
var data = ["ID: ", "Name: ", "Birthday: ", "Hobby: "];
for (var j = 0; j < input.length; j++) {
for (var i = 0; i < input[j].length; i++) {
if (i === 2)
console.log(data[i] + input[j][i] + " " + input[j][i + 1]);
else if (i === 3)
console.log(data[i] + input[j][i+1]);
};
};
你可以先把城市+日期合并到input
数组中,这样循环会更容易
var expectedOutput = input.map(a=>{
return [a[0], a[1], a[2]+' '+a[3], a[4]]
})
使用本机 ForLoop 并在 one 循环中你可以做:
//contoh input
var input = [
["0001", "Mike", "London", "21/05/1989", "Reading"],
["0002", "Sara", "Manchester", "10/10/1992", "Swimming"],
["0003", "John", "Kansas", "25/12/1965", "Cooking"],
["0004", "Dave", "Nevada", "6/4/1970", "going to gym"]
];
var data = ["ID: ", "Name: ", "Birthday: ", "Hobby: "];
for(var i = 0 ; input[i] && input[i].length ? i < input[i].length : null ; i++) {
console.log(data[0] + input[i][0]+ ',', data[1] + input[i][1]+ ',', data[2]+input[i][2] + ' '+ input[i][3]+ ',', data[3]+ input[i][4]);
};
PS: 使用map,forEach等ES6操作符更优雅..
let output = input.map( item => {
return ({ID:item[0],name:item[1],birthDay:item[2]+item[3],hobby:item[4]})
})
希望对您有所帮助
//contoh input
var input = [
["0001", "Mike", "London", "21/05/1989", "Reading"],
["0002", "Sara", "Manchester", "10/10/1992", "Swimming"],
["0003", "John", "Kansas", "25/12/1965", "Cooking"],
["0004", "Dave", "Nevada", "6/4/1970", "going to gym"]
];
var data = ["ID: ", "Name: ", "Birthday: ", "Hobby: "];
// for(var i = 0 ; i < data.length ; i++){
// console.log(data[i]);
var check = 0;
for(var j = 0 ; j < input.length ; j++){
var count = 0;
outerloop:
for(var i = 0 ; i < data.length; i++){
if(count==2){
console.log(data[i] + input[j][i] +' '+ input[j][i+1]);
count = 0;
check = 1;
continue outerloop;
} if(check==1){
count++;
console.log(data[i] + input[j][i+1]);
check = 0;
}
else{
count++;
console.log(data[i] + input[j][i]);
}
};
};
简介:
我使用了一个 if condition
和 1 ifelse condition
,并为两个条件使用了 2 个变量,第一个变量仅在条件为计数变量时检查索引是否为生日,如果是则连接当前值它是相邻值,然后我使用了一个检查变量,它在那个 if 条件下为真,我们将继续循环而不深入该迭代。 check 变量仅用于标识您在 check 为 0 时实现的正常迭代,如果为 1,则将显示相邻索引。希望对你有帮助。