动态地向JavaScript对象添加许多属性

时间:2017-12-04 02:18:52

标签: javascript object

场景是一次动态地向JavaScript对象添加一些属性。

例如,有一个对象“data”

var data = {
    PropertyA: 1,
    PropertyB: 2,
    PropertyC: 3,
}

然后将额外数据添加到“数据”

if(true){
    var extraData = {
        PropertyD: 4,
        PropertyE: 5,
        PropertyF: 6,
    }
} else {
    var extraData = {
        PropertyX: 4,
        PropertyY: 5,
        PropertyZ: 6,
    }
}

将“extraData”添加到“数据”的最佳方式或最简单方法是什么?

3 个答案:

答案 0 :(得分:1)

Object.assign(data, extraData);

如果你不想改变数据的价值,你可以这样做:

var newData = Object.assign({}, data, extraData);

答案 1 :(得分:-1)

最现代的方法是使用ES6' spread

const moreData = { ...data, extraData };

或者,这将是传统的做法:

var moreData = Object.assign({}, data, extraData);

答案 2 :(得分:-2)

这是一个很好的方法:

<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script>
  $(function(){
       var data = {
            PropertyA: 1,
            PropertyB: 2,
            PropertyC: 3,
        };
        if(true){
            var extraData = {
                PropertyD: 4,
                PropertyE: 5,
                PropertyF: 6,
            };
        } else {
            var extraData = {
                PropertyX: 4,
                PropertyY: 5,
                PropertyZ: 6,
            };
        }

        var object = $.extend({}, data, extraData);

        console.log(object);

    });
</script>