2014-02-26 17 views
0

我試圖創建一個數組,通過一個項目等待來自列表中的節點服務器的響應。如何使用Javascript和Nodejs以不同的方式處理數組

我輸入到JavaScript的數據來自HTML中的文本區域,然後我試圖每次發送一行,它只能在nodeJS完成時發送下一個數組項目,任何人都可以向我展示任何示例或方法每次發佈數組一個項目。

而不是像我現在正在一個大塊。

<script src="js/socket.io.js"></script> 
<script type="text/javascript"> 
function textareaToArray(t){ 
    return t.value.split(/[\n\r]+/); 
} 
function showArray(msg){ 
    for(i = 0; i < msg.length; i++) { 
     // something per item 
     socket.emit("dout", { message : msg[i] }); 


    } 
    // the old code 
    // document.getElementById("message").innerHTML = msg.join("&#013;"); 
} 
</script> 
<script> 
var socket = io.connect("https://json2-c9-ashg1990.c9.io"); 
socket.on("news", function(data) { 
document.getElementById("message").innerHTML = JSON.stringify(data.hello); 

}); 
// socket.emit("my other event", { message : "client emit" }); 
</script> 

我的全功能HTML

<html> 
<html> 

<head> 

<title>Welcome To ....</title> 
<script src="js/socket.io.js"></script> 
<script type="text/javascript"> 
function textareaToArray(t){ 
    return t.value.split(/[\n\r]+/); 
} 
function showArray(msg){ 
    for(i = 0; i < msg.length; i++) { 
     // something per item 
     socket.emit("dout", { message : msg[i] }); 


    } 
    // the old code 
    // document.getElementById("message").innerHTML = msg.join("&#013;"); 
} 
</script> 
<script> 
var socket = io.connect("https://json2-c9-ashg1990.c9.io"); 
socket.on("news", function(data) { 
document.getElementById("message").innerHTML = JSON.stringify(data.hello); 

}); 
// socket.emit("my other event", { message : "client emit" }); 
</script> 

</head> 

<body> 

<h1> WELCOME TO .... </h1> 

<form> 

<textarea rows="10" cols="60" name="alpha"></textarea> 

<br> 

<input type="button" value="show array" onclick="showArray(textareaToArray(this.form.alpha))"> 

</form> 

<br> 

<textarea id="message" rows="6" cols="60" name="message"></textarea> 

</body> 

</html> 
+0

你的代碼是一團糟。你可以把舊代碼與現在分開嗎? –

+0

舊代碼是這段代碼,我是新來的JavaScript因此,如果你可以指向我在正確的方向或我正在尋找什麼,即一個數組函數的名稱我想我可能不得不使用回調() – user3316689

+0

我只是不能得到你的代碼正在做什麼,你正在努力完成什麼。 你在哪裏使用'textareaToArray'? 你究竟在哪裏發送數組**?我只能看到只有'showArray'函數沒有用到。 –

回答

0

好了,你的代碼看起來不錯,除非你使用正則表達式。 您應該使用\n字符分割字符串。您正在使用\n\r,它不是一個Windown行中斷字符序列。

窗口字符序列是\r\n

請看這裏:http://www.regular-expressions.info/nonprint.html

+0

正則表達式是**不是**'\ n \ r',它是'[\ n \ r]'。所以,這是一個正確的。 – alex

相關問題