从对象外部向选项对象添加选项 - javascript

Adding options to an options object from outside the object - javascript

我正在尝试向插件添加一些自定义。它有一个选项对象(或者它可能被称为散列对象?),我想从数组中添加更多选项。

这里是选项对象'itemKeys'

   a.extend(a.zEditor.DEFAULTS, {
        itemKeys: {

            "text name 1": "font-size: 15px; color: black;",
            "text name 2": "font-size: 15px; color: black;"
        }

我可以手动添加键名作为数组值

key_name = ["text name 1", "text name 2"]

   a.extend(a.zEditor.DEFAULTS, {
        itemKeys: {

            [key_name[0]]: "font-size: 15px; color: black;",
            [key_name[1]]: "font-size: 15px; color: black;"
        }

但数组中值的数量会有所不同,因此无法手动设置。

像这样在对象内部循环显然行不通

itemKeys: {
       for (var i = 0; i < key_name.Length; i++) {
            key_name[i]: "font-size: 15px; color: black;",
           }
        }

所以现在我只剩下在对象外部进行某种循环,向选项对象添加新选项。问题是我什至不知道如何从对象外部向选项对象添加新选项。

我试过了

itemKeys: { "text name 3": "font-size: 15px; color: black;" }

但这只是覆盖了对象,所以现在它只有一个选项。

我不能更改插件中的任何其他编码,因为它会导致其他东西损坏,所以我只能这样做。

如何从对象外部向 itemKey 选项对象添加更多选项。

a.zEditor.DEFAULTS.itemKeys["text name 3"] = "font-size: 15px; color: black;";

或者,假设 a.extend() 像 jquery 的 $.extend()

a.extend(a.zEditor.DEFAULTS.itemKeys, {"text name 3": "font-size: 15px; color: black;"});

您可以assemble在外部创建一个单独的项键对象并通过引用分配它。

var myItemKeys = {};

function() {

    for (var i = 0; i < key_name.Length; i++) {
          myItemKeys[key_name[i]] = "font-size: 15px; color: black;";
    }

}

//Set the itemKeys in the object

a.extend(a.zEditor.DEFAULTS, {
    itemKeys: myItemKeys
...