我有一系列候选人:
candidacies = service.getCandidacies();
每个候选资格都是一个对象,例如:
{ id: 1, isHired: true },
{ id: 4, isHired: false },
{ id: 8, isHired: false }
我需要在列表中设置isHired = false
和id = 4
为isHired = true
的候选人。我在数组中有更多对象。这是一个例子。
我尝试使用地图功能,但不确定如何使用它,或者甚至是否可能:
candidacies = candidacies.map(function(x) {
});
但我不确定如何或甚至可能......
答案 0 :(得分:1)
假设您的对象在数组中:
candidacies = [
{ id: 1, isHired: true },
{ id: 4, isHired: false },
{ id: 8, isHired: false }
]
然后地图看起来像:
candidacies = candidacies.map(function(candidate, index) {
candidate.isHired = candidate.id === 4;
return candidate;
})
答案 1 :(得分:1)
使用您自己的存根,最简单的方法是添加逻辑测试:
candidacies = candidacies.map(function(x) {
x.isHired = x.id === 4;
return x;
});
答案 2 :(得分:0)
您可以使用forEach
(因为您正在更改变量):
var candidacies = [{ id: 1, isHired: true },
{ id: 4, isHired: false },
{ id: 8, isHired: false }];
candidacies.forEach(function(candidacy) {
candidacy.isHired = (candidacy.id === 4);
});
console.log(candidacies);
如果你真的想使用map
(如果将结果分配给另一个变量,这很好),你可以这样做:
var candidacies = [{ id: 1, isHired: true },
{ id: 4, isHired: false },
{ id: 8, isHired: false }];
var newCandidacies = candidacies.map(function(candidacy) {
return Object.assign({}, candidacy, { isHired: (candidacy.id === 4) });
});
console.log(newCandidacies);
答案 3 :(得分:-1)
这看起来像是学生会问的一个问题,如果是这样的话我们就不会在这里为你解决你的功课。 map函数遍历数组并应用您定义的任何function()
。无论哪种方式,您都可以运行一些console.log(x)
来查看它是如何工作的。祝你好运。