是否有类似 .push 的功能可以动态地向对象添加值?

Is there a .push like feature to dynamically add values to an object?

使用 arrays 时,您可以使用 .push 方法向数组动态添加新值。使用对象时是否可以做同样的事情?

例如,我有一个文本框,在用户输入内容并单击“添加”后,您能否将值添加到对象以便保存每个值,例如

示例:

{
  message: "This is the first message",
  message: "This is the second message",
  message: "Third message etc"  
}

代码:

$(document).ready(function() {

        // var objArray = [];
        var objObject = {};


        $('#icecream').on('click', function() {
            $(this).animate({'height': '200px'}, 300);  
        });

        $('#add').on('click', function() {
            var value = $('#icecream').val();
            // objArray.push(value);
            // console.log(objArray);
            objObject = {
                message: value,
            }
            console.log(objObject);

        }); 

    });

我想你要找的只是objObjects.message='This is the second message';

如果你真的想保留每一个,也许你需要一个数组:

objObjects.messages = [
  'This is the first message',
  'This is the second message',
   // etc
];

这里data是jQueryobjectObject 必须需要 keyvalue 对。

data.message = "This is the first message";

你可以这样做:

objObject.message = "...";

在对象末尾添加 属性 将其作为变量添加到该对象中。

{
  message: "This is the first message",
  message: "This is the second message",
  message: "Third message etc"  
}

这不是一个有效的对象。你不能有相同的 属性 三次(键必须是唯一的)。
你可能需要一个数组:

var messageObj = { 
 messages: [
   "This is the first message",
   "This is the second message",
   "Third message etc"
]};

添加新消息将是:

messageObj.messages.push("Forth message");

您可以向对象动态添加属性:

var obj = {};
var propName = "message";
var propVal = "This is a message";

obj[propName] = propVal;
console.log(obj); // { message: "This is a message" }

JSFIDDLE.