我正在开发一个网络聊天,通过JSON协议获取每条消息的数据。通过ajax(),我收到以下信息:
{"id":"33","senderId":"1","message":"My fellow citizens","timestamp":"2014-10-24 11:45:04","conversationid":"2","status":"0"}
senderId 是识别用户姓名的关键,因为如果senderId =" 1"这意味着迈克尔发送了这条消息。该数组具有以下名称:
nameArray = ["Micheal", "Earvin", "Kareem", "Wilt", "Hakeem"]
我尝试了以下代码,但它无效。
senderId = JSON.parse(element.senderId)
for (var i=0; i<senderId.length; i++) {
if (senderId[i] == 1) {
senderId[i] = nameArray[0];
break;
}
}
您是否知道如何根据nameArray的值更改senderId信息?
提前感谢您的回复!
答案 0 :(得分:1)
假设元素是对象{"id":"33","senderId":"1","message":"My fellow citizens","timestamp":"2014-10-24 11:45:04","conversationid":"2","status":"0"}
,并且您想要将senderId: 1
替换为Micheal
,则可以
element.senderId = nameArray[element.senderId - 1];
答案 1 :(得分:0)
使用您拥有的对象,您不需要 for 循环来替换名称。 实际上,如果您的nameArray中不存在senderId,您可以直接搜索数组,包括异常。
另外,直接将值替换为对象并不是一个很好的做法,我建议你在对象中添加另一个属性,以便在将来需要时记录senderId。
index = element.senderId - 1;
element.name = (index in nameArray ? nameArray[index] : "Anonymous");