当前位置: 首页 > 知识库问答 >
问题:

数组对象中的manipluate数据[重复]

令狐泓
2023-03-14

我希望循环通过一个对象,并对数据进行一些更改。我不是100%如果我实际上处理一个对象或一个数组包含多个对象,所以任何帮助都很感激。

下面是我的目标:

var screening = {
    source: "jacket",
    value: {
        Cyan: {
            dotshape: "C",
            frequency: 120,
            angle: 67.5
        },
        Magenta: {
            dotshape: "C",
            frequency: 120,
            angle: 37.5
        },
        Yellow: {
            dotshape: "C",
            frequency: 120,
            angle: 82.5
        },
        "PANTONE 3528 C": {
            dotshape: "C",
            frequency: 120,
            angle: 7.5
        },
        "PANTONE 293 C": {
            dotshape: "C",
            frequency: 120,
            angle: 7.5
        },
        "PANTONE 2748 C": {
            dotshape: "C",
            frequency: 120,
            angle: 7.5
        },
        Varnish: {
            dotshape: "C",
            frequency: 120,
            angle: 0
        }
    }
}
Old = [Cyan, Magenta, Yellow]
new = [changedName1, changedName2, changedName3]

提前致谢

共有1个答案

柯振濂
2023-03-14

使用delete删除旧属性,并使用[](方括号表示法)和indexof获取旧属性并创建新属性:

js lang-js prettyprint-override">var screening = {
  source: "jacket",
  value: {
    Cyan: {
      dotshape: "C",
      frequency: 120,
      angle: 67.5
    },
    Magenta: {
      dotshape: "C",
      frequency: 120,
      angle: 37.5
    },
    Yellow: {
      dotshape: "C",
      frequency: 120,
      angle: 82.5
    },
    "PANTONE 3528 C": {
      dotshape: "C",
      frequency: 120,
      angle: 7.5
    },
    "PANTONE 293 C": {
      dotshape: "C",
      frequency: 120,
      angle: 7.5
    },
    "PANTONE 2748 C": {
      dotshape: "C",
      frequency: 120,
      angle: 7.5
    },
    Varnish: {
      dotshape: "C",
      frequency: 120,
      angle: 0
    }
  }
};

function oldToNew(oldNames, newNames) {
  Object.entries(screening.value).forEach(([key, prop]) => {
    if (oldNames.includes(key)) {
      screening.value[newNames[oldNames.indexOf(key)]] = screening.value[key];
      delete screening.value[key];
    }
  });
}

oldToNew(["Cyan", "Magenta", "Yellow"], ["Blue", "Purple", "Orange"]);

console.log(screening.value);
 类似资料:
  • 我有一个数组。如何按类型、名称和大小以及递增量找到双重许可。增加数量后删除相同的。

  • 如何在两个属性之后对对象数组进行分组?在以下情况下是否可以使用减少? 例如:按国家和城市将以下数组分组,并对“年龄”属性求和: /*预期结果:*/

  • 问题内容: 我有一个包含我的对象的数组。每个人都有财产。 有没有比我的数组中找到重复的帖子ID的更有效方法? 问题答案: 我将建议2解决方案。 两种方法都必须是平等的 使帖子符合可哈希和平等 在这里,我假设您的struct(或类)具有type 的属性。 解决方案1(丢失原始订单) 要删除重复的内容,您可以使用 解决方案2(保留订单)

  • 我有这个初始数组,希望根据和提取重复航班 我写了这个,但我只能得到第一个重复的,看起来不是很漂亮。 有什么建议吗?

  • 现在我有了新阵列 现在,现有的_array和新的_array都有名称值“b”,我希望它从新数组中移除

  • 我有一个收藏,存储一些产品的文档。在文档中,有一个数组来存储用户对产品的价格评估对象。 下面是一个用户对象的示例: app.js