我正在尝试遍历数组。该数组基本上是服务器上.txt文件的列表,如下所示:
12345|Test message
55555|55555's message
12345|Test message 2
我向服务器发出一个简单的GET请求,然后在名为res
的变量中获取响应。然后我这样做:
array = res.split("\n");
for(i = 0; i < array.length; i++) {
array2 = array[i].split("|");
if(array2[0] == "12345") {
console.log(array[1]);
}
}
它将遍历数组的每一行,将其拆分为|然后检查第一个&#34;元素&#34;是12345.如果是,则在控制台中写入消息。但是,我希望它写下最后一条消息而不是每条消息。在这种情况下,它会写:
Test message
Test message 2
但我想写它
Test message 2
&#34;问题&#34;是:你可以遍历数组,但只有在找到最后一条消息后才做一些事情吗?感谢。
答案 0 :(得分:3)
只需将消息存储在变量中,然后在循环后输出。
array = res.split("\n");
var logMe;
for(i = 0; i < array.length; i++) {
array2 = array[i].split("|");
if(array2[0] == "12345") {
logMe = array[1];
}
}
if (logMe) {
console.log(logMe)
}
答案 1 :(得分:2)
或者你可以简单地向后遍历数组:)
array = res.split("\n");
var i = array.length;
for(i; i > 0; i--) {
array2 = array[i].split("|");
if(array2[0] == "12345") {
console.log(array[1]);
break;
}
}
(完全是你的代码,只是向后+破坏;如果没有观察其他行的话)
答案 2 :(得分:-1)
这应该这样做:
for(i = 0; i < array.length; i++) {
array2 = array[i].split("|");
if(array2[0] == "12345") {
console.log(array[1]);
}
if(i == array.lenght - 1){
System.out.println("Message2");
}