JavaScript (JQuery) 更改参数名称

标签 javascript jquery

是否可以更改 JavaScript 对象中的参数名称?

我的问题是 JQuery AutoComplete 对参数名称非常挑剔,需要参数名称标签或值。

我的数据对象。

data....
data.receivers[].id
data.receivers[].name
data....

我想做的是制作一个别名/引用或类似的概念。

data.receivers[].label = data.receivers[].name

所以我想将参数从名称更改为标签。我已经这样做了,但我不喜欢复制我认为 .map 所做的数据。

var callBack = function(data) {
    var autoCompleteData = jQuery.map(data.receivers, function(receiver, i){
          return {label: receiver.name, id: receiver.id };
    });

    $("input#reciever").autocomplete({
        source: autoCompleteData,
        focus: function(event, receiver) {
            $("input#reciever").val(receiver.item.label);
            return false;
        },
        select: function(event, receiver) {
            $("input#reciever").val(receiver.item.label); 
            $("input#recieverId").val(receiver.item.id);
            return false;
        }

    });
}

附言。我可以更改从我的服务器返回的 JSON 数据,但我想保持名称的逻辑性和直观性,而不是被迫根据 JQuery 的约束按数据对象建模。

最佳答案

如果您想就地更新您的对象集合,您可以使用 $.each()而不是 $.map():

$.each(data.receivers, function() {
    this.label = this.name;
    delete this.name;    
});

$("input#reciever").autocomplete({   // suggest $("#receiver") instead
     source: data.receivers,
     // ...
});

关于JavaScript (JQuery) 更改参数名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8123672/

相关文章:

javascript - Knockoutjs 可见绑定(bind) ||或者?

javascript - 在本地组件 vuejs 中访问 Prop 值

javascript - 为什么触发mouseleave

jquery - 复选框和文本字段 jQuery

Javascript 属性获取和设置类似于 c# .net

javascript - 悬停下拉溢出

javascript - 在Javascript(jquery)中,有没有办法检测页面 anchor 何时发生变化?

javascript - 在动态生成的 DIV 的鼠标悬停上显示 Google map 标记信息名称

javascript - jquery .each 循环奇怪的行为

javascript - 以编程方式从多个输入字段上传多个文件 - blueimp jquery fileupload