用外部数组中的值替换对象值

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];

Demo

使用您拥有的对象,您不需要 for 循环来替换名称。 实际上,如果您的 nameArray 中不存在 senderId,则您可以直接搜索数组,包括异常。

此外,直接将值替换为对象不是一个很好的做法,我建议您在对象中添加另一个属性以在将来需要时记录 senderId。

index = element.senderId - 1;
element.name = (index in nameArray ? nameArray[index] : "Anonymous");