将对象值替换为外部数组中的值

Replace object value with values from an external array

本文关键字:数组 外部 对象 替换      更新时间:2023-09-26

我正在开发一个网络聊天,通过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 的值更改发件人 ID 信息吗?

提前感谢您的回复!

假设元素是对象{"id":"33","senderId":"1","message":"My fellow citizens","timestamp":"2014-10-24 11:45:04","conversationid":"2","status":"0"}并且您想用Micheal替换senderId: 1,则可以

element.senderId = nameArray[element.senderId - 1];

演示

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

另外,直接将值替换到对象中并不是一个非常好的做法,如果您将来需要它,建议您向对象添加另一个属性以记录senderId。

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