我有以下代码可以在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中正常工作吗?
答案 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)
答案 2 :(得分:0)
对象的计算属性名称在Internet Explorer中为not supported(但较新的Edge浏览器支持它们)。
如果要处理大量IE用户,则可能需要考虑到这一点。