1. ホーム
  2. javascript

[解決済み] Pythonループ:idx for idx (javascriptにリライト)

2022-02-05 06:08:40

質問

PythonのコードをJavascriptに書き直そうとしています。

この部分をどう書き換えたらいいのか、わからないのですが.

zone_indices = [[idx for idx, val in enumerate(classified) if zone + 1 == val] for zone in range(maxz)]

idxはidx、valはval を置くとはどういう意味ですか? idx を冒頭に置くか?

解決方法は?

idx"は、通常、以下の略語です。 インデックスを作成します。

Pythonのループでは、ネストされたリスト内のアイテムに、このように直接アクセスすることができます。

>>> lst = [[1, 2], [3, 4], [5, 6]]
>>> 
>>> for a,b in lst:
        print a,b

1 2
3 4
5 6

Pythonでenumerateを使うと、似たようなことができます。

>>> for idx,val in enumerate(['a','b','c']):
        print('index of ' + val + ': ' + str(idx))

index of a: 0
index of b: 1
index of c: 2

と同等です。 enumerate(array) は、JavaScriptでは array.entries() Pythonと同じように使うことができます。

zone_indices = []

for (let i = 0; i < maxz.length, i++) {
    for (let [idx, val] of classified.entries()) {
        if (zone+1 === val) {
            zone_indices.push(idx);
        };
    };
};