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

时间:2015-03-12 03:18:46

标签: javascript jquery json object

我正在开发一个网络聊天,通过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信息?

提前感谢您的回复!

2 个答案:

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

Demo

答案 1 :(得分:0)

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

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

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