如何输出:
ID: 0001
Name: Mike
Birthday: London 21/05/1989
Hobby: Reading
我下面的代码未定义,我希望数组city + date在生日那天在一起。
我的代码不是,请在下面检查我的代码:
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 :(得分:3)
您可以使用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);
答案 1 :(得分:3)
尝试一下
//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;
}
答案 2 :(得分:2)
var x = "+91458888888"
var reg = /\+(91|92|923|912)(.*)/
if(reg.test(x)){
var number = x.match(reg)[2];
}else{
//false
}
希望这会有所帮助
答案 3 :(得分:1)
由于数组中的索引基于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('=================')
};
};
答案 4 :(得分:1)
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)
答案 5 :(得分:1)
这应该有效。只需在打印前检查必要条件即可。 并检查是否输出索引超出范围的数组所指向的值。这就是为什么它显示未定义的原因。
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]);
};
};
答案 6 :(得分:1)
您可以先在input
数组中合并城市和日期,然后循环会更容易
var expectedOutput = input.map(a=>{
return [a[0], a[1], a[2]+' '+a[3], a[4]]
})
答案 7 :(得分:1)
使用本机 ForLoop ,并在一个循环中,您可以执行以下操作:
ASSERT(condition, ...)
PS: 使用ES6运算符(例如map和forEach)更加优雅。
答案 8 :(得分:0)
尝试在第三个“ for”语句中更改变量名称。我没有对循环进行非常深入的研究,但是我相信您不想在第三循环中使用变量“ i”。尝试将其命名为“ var k”
答案 9 :(得分:0)
HttpModule
简介:
我使用了一个HttpClientModule
和1 //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]);
}
};
};
,并且两个条件都使用了2个变量,第一个变量仅在条件为count变量时才可用,该变量检查索引是否为生日,如果是则将当前值连接起来并且它是相邻的值,然后我使用了一个检查变量,如果条件成立,它将是正确的,我们将继续循环而无需深入进行迭代。 check变量仅用于标识当check为0且如果为1时实现的常规迭代,则将显示相邻索引。希望对您有帮助。