2016-09-23 18 views

答えて

1

それはすでにかなりよさそうです。 xのコードでは、コードの読みやすさが損なわれ、非構造化が役に立ちます。

Array.prototype.entries()myArray.map((x, idx) => [idx, x])のショートカットです: `r`呼ば

[...myArray.entries()] 
.filter(([, x]) => x > 13) 
.map(([idx]) => idx) 
4

多分これはより明確にすることができます。

[11,12,13,14,15,16].reduce((r, c, i) => c > 13 ? r.concat(i) : r, []); 
// [3, 4, 5] 
+0

変数、 'C'と' i'は** **明確ではありません。彼らは短いですが、最初に何を意味するのか分からない人には分かりません。 – CodingIntrigue

+0

rは結果です、cは最新でインデックスはiは – erdysson

0

私はそれが簡単だかどうかわからないんだけど、あなたは(あなたが好む場合、またはforEachの)削減使用して、1つの関数にそれを行うことができます:

[11,12,13,14,15,16].reduce((a,x,i) => { 
    if (x > 13) { a.push(i); } 
    return a; 
}, []); 
0
var out = []; 
array.forEach((v, idx) => { 
    if(v > 13){ 
    out.push(idx); 
    } 
}) 
1

あなたがマップを使用して値をフィルタできます。

var data = [11, 12, 13, 14, 15, 16], 
 
    result = data.map((a, i) => a > 13 && i).filter(a => a !== false); 
 

 
console.log(result);

+0

です。実際には 'a> 13 && i'は'ここでは偽です。 – CodingIntrigue

+0

いいえ、 'a> 13'ならインデックスを取得します。それ以外の場合は 'false'を返し、それは第2の部分でフィルタリングされます。 –

関連する問題