设置另一个对象的属性时自动更新JavaScript对象属性

时间:2016-11-10 13:20:45

标签: javascript jquery

我有一个对象数组,每个对象都包含一个名为title的属性 title属性可以包含两个可能的字符串值之一 - "main""local"。数组中只有一个元素在给定时间可以"main"作为其title值,其余元素的title属性应设置为"local"

例如,采用以下数组:

var locations = [
  {
    title:"main",
    place:"UK"
  },
{
    title:"local",
    place:"USA"
  },
{
    title:"local",
    place:"RUSSIA"
  }
]

place:"USA"对象的title属性设置为"main时,我希望place:"UK"对象的title属性自动设置为"local"

如何使用javascript实现这一目标?

3 个答案:

答案 0 :(得分:1)

执行此操作的一种方法是将所有title值设置为local,然后将所需对象设置为main。 另一种方法是记住当前设置为main的索引,并在要更改main时将其还原为本地。

答案 1 :(得分:0)

以下内容将返回包含所需更改的数组副本:

使用ES6 / Babel:

// Example:
somePlace = 'USA';

const newLocations = locations.map(l =>
  { ...l, title: l.place === somePlace ? 'main' : 'local' }
);

使用Vanilla JS / Lodash:

// Example:
somePlace = 'USA';

var newLocations = _.map(locations, function (l) {
  return _.assign({}, l, { title: l.place === somePlace ? 'main' : 'local' });
);

答案 2 :(得分:0)

traits