gpt4 book ai didi

javascript - JS/JQUERY 不更新字符串数组值

转载 作者:行者123 更新时间:2023-11-30 00:29:00 25 4
gpt4 key购买 nike

我正在制作的 Web 应用程序遇到问题。

我正在使用 node.js 作为后端,服务器正在发送(使用 socket.io)这样的字符串 "0010000110�0”。

在客户端我有:

$(document).on("pageinit", function(){

var socket = io.connect('http://localhost:8080');
var tmpData = [];

socket.on('recData', function(data){
tmpData = data; //here I put the received string in the tmpData array
});

//checking for the string array state
$("#deskLight-1").on("vclick", function(){
if(tmpData[2] == '1'){
tmpData[2] = '0';
alert(tmpData);
}
else if(tmpData[2] == '0'){
tmpData[2]='1';
alert(tmpData);
}
});

});

所以这个想法是打开/关闭灯。这只是代码的一部分,所以我们只关注 tmpData[2]

if 条件正常工作,警报对话框只显示旧的 tmpData 字符串(所以这个 0010000110�0)。它应该更改为这个 00**0**0000110�0

我不明白为什么 tmpData[2] = '0'tmpData[2] = '1' 不更新索引值。有什么想法吗?

最佳答案

JavaScript 中的字符串是不可变的:

var str = '123';
str[1] = 'x';
console.log(str); // '123'

您似乎想将数据用作字符数组,因此将其存储为数组:

socket.on('recData', function(data){
tmpData = data.split(''); // array of characters
});

如果您需要返回(更新的)字符串,请记住将字符连接在一起:

console.log(tmpData.join(''));

关于javascript - JS/JQUERY 不更新字符串数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30299359/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com