3

forEach句でいくつかの値を取得しています

 data.forEach(function(content){
  ...
  controller.setAttribute(value from data);
  ...}

これは私にとってはうまくいきます。しかし、データ ループは 20 回近く繰り返されます。私のコントローラーは5つの値しか取ることができません。したがって、上記の例のコントローラーは値を取りlast fiveます。

値を読み取った後に終了するようにデータを制限するにはどうすればよいですかfirst five。そこにカウンターが必要ですよね?

または、コントローラーが読み取り専用にする他の方法はありますfirst fiveか?

4

5 に答える 5

2

JavaScript のArray#sliceメソッドを使用できます。

data.slice(0, 5).forEach(function (content){
  // ...
});
于 2012-06-29T04:32:48.173 に答える
2

私が正しく理解していれば、これはうまくいくはずです:

for (i=0; i<Math.min(data.length, 5); ++i) {
  controller.setAttribute(value from data[i])
}

しかし、 を持つ実装を使用しているように見えるので、次のようになりますArray.forEach

data.slice(0,5).forEach(function(content) {
   controller.setAttribute(value from content)
}
于 2012-06-29T04:33:06.893 に答える
1

ECMAforEachを使用している場合、コールバックは 3 つの引数を受け取り、2 番目はインデックスです。

data.forEach(function(content, index) {
   if (index >= 5) return;
  // ...
});
于 2012-06-29T04:33:15.510 に答える
1

value 引数の後に index 引数を渡して、それを使用できます。

data.forEach(function(content, index){
   if (index < 5) {
       controller.setAttribute(value from data);
   }
});
于 2012-06-29T04:33:22.880 に答える
0

これにはカウンターまたは for ループを使用できます。例:

for(var i=0; i<5; i++){
    controller.setAttribute(data[i]);
}
于 2012-06-29T04:33:00.577 に答える