1. ホーム
  2. javascript

[解決済み] Pythonのvalues()辞書メソッドに相当するJavascript [重複]...

2023-07-03 04:36:33

質問

Pythonでは .values() メソッドを使って を繰り返し実行します。

例えば

mydict = {'a': [3,5,6,43,3,6,3,],
          'b': [87,65,3,45,7,8],
          'c': [34,57,8,9,9,2],}
values = mydict.values():

ここで values が含まれる。

[
    [3,5,6,43,3,6,3,],
    [87,65,3,45,7,8],
    [34,57,8,9,9,2],
]

Javascriptで辞書の値だけを取得するにはどうしたらよいですか?

私のオリジナルの印刷例は、私がやりたいことが明確ではありませんでした。 私は、辞書内の値のリスト/配列だけが欲しいのです。

私は、リストを循環させて、値の新しいリストを作成することができると理解していますが、より良い方法はありますか。

どのように解決するのですか?

更新

Adnanの回答が最初だったので、upvotedしました。参考になればと思い、もう少し詳しく投稿しています。

その には ループは、あなたが探しているものです。

var dictionary = {
    id:'value',
    idNext: 'value 2'
}

for (var key in dictionary){
    //key will be -> 'id'
    //dictionary[key] -> 'value'
}

のすべてのキーを取得するために dictionary オブジェクトのすべてのキーを取得するには Object.keys(dictionary)

つまり、配列ループで同じことができる --。

var keys = Object.keys(dictionary);
keys.forEach(function(key){
    console.log(key, dictionary[key]);
});

これは、特に、醜い if..else ループを書かずにキーをフィルタリングしたい場合に特に便利です。

keys.filter(function(key){
    //return dictionary[key] % 2 === 0;
    //return !key.match(/regex/)
    // and so on
});

更新 - 辞書にあるすべての値を取得するには、今のところループを実行する以外に方法はない。しかし、どのようにループを行うかは選択の問題です。個人的には

var dictionary = {
    a: [1,2,3, 4],
    b:[5,6,7]
}
var values = Object.keys(dictionary).map(function(key){
    return dictionary[key];
});
//will return [[1,2,3,4], [5,6,7]]