我有一个对象数组,每个对象都包含一个名为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实现这一目标?
答案 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