用外部数组中的值替换对象值
Replace object value with values from an external array
我正在开发一个通过 JSON 协议获取每条消息数据的网络聊天。通过 ajax() 我收到以下信息:
{"id":"33","senderId":"1","message":"My fellow citizens","timestamp":"2014-10-24 11:45:04","conversationid":"2","status":"0"}
senderId 是识别用户名的关键,因为如果 senderId="1" 则表示 Michael 发送了消息。该数组具有以下名称:
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信息的方法吗?
提前感谢您的回复!
假设 element 是对象 {"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];
使用您拥有的对象,您不需要 for 循环来替换名称。
实际上,如果您的 nameArray 中不存在 senderId,则您可以直接搜索数组,包括异常。
此外,直接将值替换为对象不是一个很好的做法,我建议您在对象中添加另一个属性以在将来需要时记录 senderId。
index = element.senderId - 1;
element.name = (index in nameArray ? nameArray[index] : "Anonymous");
我正在开发一个通过 JSON 协议获取每条消息数据的网络聊天。通过 ajax() 我收到以下信息:
{"id":"33","senderId":"1","message":"My fellow citizens","timestamp":"2014-10-24 11:45:04","conversationid":"2","status":"0"}
senderId 是识别用户名的关键,因为如果 senderId="1" 则表示 Michael 发送了消息。该数组具有以下名称:
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信息的方法吗?
提前感谢您的回复!
假设 element 是对象 {"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];
使用您拥有的对象,您不需要 for 循环来替换名称。 实际上,如果您的 nameArray 中不存在 senderId,则您可以直接搜索数组,包括异常。
此外,直接将值替换为对象不是一个很好的做法,我建议您在对象中添加另一个属性以在将来需要时记录 senderId。
index = element.senderId - 1;
element.name = (index in nameArray ? nameArray[index] : "Anonymous");