0

如何以“旧方式”深度克隆对象数组。换句话说,在引入现代方法之前,像JSON.parseassignextendspread operator这样的原生方法。

该解决方案适用于某些 Photoshop 脚本。Adobe 仍在使用 JS v1.5(或 ECMAScript 3)——这意味着自 2000 年以来的任何 JS 功能都不是原生的。理想的解决方案是深度克隆,但避免使用 Photoshop 特定对象,例如“图层”(最后会详细介绍)。

或者,模拟现代功能的轻量级库也可以。我已经尝试过这个 JSON2 实现,但遇到了以下错误:

Error 8450: The operation is not valid for channels of type component.

我遇到了这个 JSON 资源,但该指南似乎令人生畏,所以我还没有走多远。

对象数组当前的结构如下:

object = [
    {
        prop: string,
        array: [{layerObject},{layerObject}...]
    },
    {...},
]

理想情况下,将克隆除“layerObjects”之外的所有上述内容。不应克隆 layerObjects,因为它们是对需要跟踪和操作的屏幕 Photoshop 元素的引用。

4

0 回答 0