IE不支持JavaScript对象属性?

时间:2019-04-17 07:53:24

标签: javascript object internet-explorer ecmascript-6

我有以下代码可以在Chrome等系统中完美运行,但在IE 11中不起作用:

const toTree = (nodes) => {

  nodes.forEach((node) => {

    const parent = nodes.find((another) => another.id == node.parentId)
    if(parent == null) return;

    node.parent = parent;
    parent.children = parent.children || [];
    parent.children = parent.children.concat(node);

  });

  return nodes.filter((node) => node.parent == null)

};

Here is a plunker that shows the problem

由于变量是动态的,所以我不能仅仅对其进行硬编码。

有什么想法可以让它在IE中正常工作吗?

3 个答案:

答案 0 :(得分:2)

IE不支持computed property names

您可以选择经典的property accessor

var fieldName = "UserField",
    fieldValue = "update value here...",
    obj = { id: 123 };

obj[fieldName] = fieldValue;

var message = "The field [" + fieldName + "] will be updated with the value of [" + obj[fieldName] + "]";

console.log(message);

答案 1 :(得分:1)

不是,IE不支持它们:

enter image description here

答案 2 :(得分:0)

对象的计算属性名称在Internet Explorer中为not supported(但较新的Edge浏览器支持它们)。

如果要处理大量IE用户,则可能需要考虑到这一点。