における二つの配列から値を組み合わせます私の場合、最終配列は次のようになります。は、私がどのように見えるの配列を持っているJavaScriptの
var data = [{"year":[1980],"weight":[0]},
{"year":[1981],"weight":[3]},
{"year":[1982],"weight":[4]},
{"year":[1983],"weight":[0]},
{"year":[1984],"weight":[0]},
{"year":[1985],"weight":[7]},
{"year":[1986],"weight":[0]}]
私はこのタスクを2つのステップで実装しました。最初に、7つの要素の長さ(1980年 - 1986年)の空の配列を作成し、各要素を値{"year": $CURRENT_YEAR, "weight": 0}
で初期化しました。それから私はdata
配列をループ、空の配列に現在の年のインデックスを検索し、現在の値とyear
とweight
フィールドを交換してください。私のコードは下に貼り付けられます。
コードは、よりエレガントな方法に書き直すことができれば、私は疑問に思います。
// Create empty array
var my_array = []
var length = 7
// 1st step
year = 1980
for (var i = 0; i < length; i++) {
my_array.push({"year": year, "weight": 0});
year++
}
// 2nd step
for (var j = 0; j < data.length; j++) {
curr_year = data[j]["year"][0];
curr_weight = data[j]["weight"][0]
var index = my_array.findIndex(function(item, i) {return item.year === curr_year})
my_array[index] = {"year": curr_year, "weight": curr_weight}
}
なぜ[1981]のように、配列内の自分の価値観であり、[3]?あなたはそれらにさらに価値を蓄えようとしていますか?私はあなたのコードが最初のステップでは配列として値を格納していないが、それは部分的には2番目のステップであることがわかります。だから2人のうちの1人が間違っている。あなたのコードコードはそのようには動作しません。 – trincot
"コードをよりエレガントな方法で書き直すことができるのだろうか?" - これがあなたの質問であれば、これは[codereview](http://codereview.stackexchange.com/)に掲載してはいけませんか? – evolutionxbox
まあ、コードは明らかにOPが求めていることをしていないので、質問を本当に言い換えるべきだと思う*「これは結果が得られない(....) (...)どうしたの? " CodeReview用ではありません。 – trincot