代码之家  ›  专栏  ›  技术社区  ›  Badetv

在JS中一次跨多个对象更改键的值

  •  0
  • Badetv  · 技术社区  · 7 年前

    我有多个对象,它们都有相同的关键点,比如说每个对象都有:名称和位置。第一个对象将以位置=0开始。第二个对象的位置为1。第三个物体的位置为2,依此类推,直到第十个物体的位置为9。

    我需要一种从每个对象位置减去1的方法(只有可能的值是0-9,因此0-1=9)

    寻找一种同时在数学上处理所有键的解决方案,而不仅仅是重新写出新值来分别分配给每个键。

    1 回复  |  直到 7 年前
        1
  •  1
  •   desoares    7 年前

    假设您有一个JavaScript对象数组,可以使用map:

    var newObjs = objects.map(function (object) {
        object.position = (object.position === 9 ? 0 : object.position--);
        return object;
    });
    

    更好的方法是:

    objects.forEach( function (object) {
        object.position--;
        object.position = object.position < 0 ? 9 : object.position;
    });