かなり基本的な質問私は思うが、私はその情報を見つけることができませんでした。 D3を通じてオブジェクトの配列のプロパティへのアクセス
私はcsvファイルを解析し、各オブジェクトは、私は新しい配列を作成し、各要素を押さずに配列としてすべてのプロパティ「数」の配列にアクセスすることができますどのようにこの
name: "whatever"
number: "52"
のように見えますか?
かなり基本的な質問私は思うが、私はその情報を見つけることができませんでした。 D3を通じてオブジェクトの配列のプロパティへのアクセス
私はcsvファイルを解析し、各オブジェクトは、私は新しい配列を作成し、各要素を押さずに配列としてすべてのプロパティ「数」の配列にアクセスすることができますどのようにこの
name: "whatever"
number: "52"
のように見えますか?
JavaScriptでは、このような配列が存在しないため、JavaScriptでは使用できません。あなたがオブジェクトの配列を持っているなら、それぞれのオブジェクトは貴重な小さな雪片です。もちろん、 "数値"の値を新しい配列に転送することはできますが、それは間違いなく新しい配列になります。
いくつかのツールキット(PrototypeとFunctionalとUnderscore)には、あなたが望むものを正確に実行できるように設計された「pluck()」機能がありますが、新しい配列を作成することも余儀なくされています。その後
function pluck(array, property) {
var i, rv = [];
for (i = 0; i < array.length; ++i) {
rv[i] = array[i][property];
}
return rv;
}
:
var arrayOfNumbers = pluck(originalArray, "number");
ループ内で呼び出され、各オブジェクトの指定されたプロパティの値を受け取るコールバックを受け入れるには、 'pluck'を強化する価値があります。配列は、コールバックから返された値の配列を返すために使用できます。 – RightSaidFred
面白い、@ RightSaidFred、私はちょうどそれを考えていた:-)その後、その機能はあなたが通常map()と呼んでいることに気付きました。そして、あなたは確かに "map" ()」と表示されます。 – Pointy
非常に真実。それはあまり柔軟性の低いマップです! Duh !! – RightSaidFred
for (i=0; i<myArrayOfObjects.length; i++) {
doWhatever(myArrayOfObjects[i].number);
}
あなたがlodash使用している場合は、この操作を行うことができます。
var numbers = _.map(originalArray, 'number')
それぞれのオブジェクトが '{" name ":" whatever "、" number ":52}'のようになり、これらのオブジェクトの配列を持っていることを意味しますか? –
番号フィールドに直接アクセスできます。何か[i] ["number"]か何か[i]。number ...を使用するだけでもループスルーが可能です。前に述べた方法で直接アクセスするのではなく、別の配列として持っている他の具体的な理由はありますか? –