私はこの配列を手に入れました、
var rockets = [
{ country:'Russia', launches:32 },
{ country:'US', launches:23 },
{ country:'China', launches:16 },
{ country:'Europe(ESA)', launches:7 },
{ country:'India', launches:4 },
{ country:'Japan', launches:3 }
];
マップされた配列を返すために何をする必要がありますか?
打ち上げる
価値、ここで私の最初のアプローチ、
var launchOptimistic = rockets.map(function(elem){
// return elem.launches+10;
return (elem.country, elem.launches+10);
});
console.log(launchOptimistic);
すでに非常に近いので、必要な新しいオブジェクトを返すだけです。この場合、launches値が10ずつ増加することを除いて同じもの:
var rockets = [
{ country:'Russia', launches:32 },
{ country:'US', launches:23 },
{ country:'China', launches:16 },
{ country:'Europe(ESA)', launches:7 },
{ country:'India', launches:4 },
{ country:'Japan', launches:3 }
];
var launchOptimistic = rockets.map(function(elem) {
return {
country: elem.country,
launches: elem.launches+10,
}
});
console.log(launchOptimistic);
戻りなしで.mapを簡単な方法で使用します。また、letとconstの方が推奨されるため、varの代わりにletとconstの使用を開始してください
const rockets = [
{ country:'Russia', launches:32 },
{ country:'US', launches:23 },
{ country:'China', launches:16 },
{ country:'Europe(ESA)', launches:7 },
{ country:'India', launches:4 },
{ country:'Japan', launches:3 }
];
const launchOptimistic = rockets.map(elem => (
{
country: elem.country,
launches: elem.launches+10
}
));
console.log(launchOptimistic);
map
ロケットと打ち上げに10を追加:
var rockets = [
{ country:'Russia', launches:32 },
{ country:'US', launches:23 },
{ country:'China', launches:16 },
{ country:'Europe(ESA)', launches:7 },
{ country:'India', launches:4 },
{ country:'Japan', launches:3 }
];
rockets.map((itm) => {
itm.launches += 10
return itm
})
console.log(rockets)
rockets
を変更したくない場合は、以下を実行できます。
var plusTen = []
rockets.forEach((itm) => {
plusTen.Push({'country': itm.country, 'launches': itm.launches + 10})
})
元のオブジェクトを変更する場合は、単純なArray#forEach
を実行します。
rockets.forEach(function(rocket) {
rocket.launches += 10;
});
元のオブジェクトを変更せずに保持する場合は、Array#map
を使用し、Object#assign
を使用してオブジェクトをコピーします。
var newRockets = rockets.forEach(function(rocket) {
var newRocket = Object.assign({}, rocket);
newRocket.launches += 10;
return newRocket;
});