Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
0
Help us understand the problem. What is going on with this article?
@hirory

Array.prototype.findIndex() - 配列から条件を満たす値のインデックス番号を取得する

More than 1 year has passed since last update.

Array.prototype.findIndex()は、配列から条件を満たす要素のインデックス番号を取得するメソッドです。前方から後方にかけて検索し、条件を満たす一番最初の要素だけが返ります。条件を満たす要素が1つもない場合、undefinedが返ります。なお、find()は、値ではなく、インデックス番号が返ります。

概要
名前
findIndex
所属
Array.prototype
仕様書
https://tc39.github.io/ecma262/#sec-array.prototype.findindex
説明
Array.prototype.findIndex ( predicate [ , thisArg ] )
第1引数(predicate)にコールバック関数を指定します。このコールバック関数がtrueを返せばその要素のインデックス番号が検索にヒットした値として返されます。それ以外なら条件を満たしていないと判断され、次の要素のチェックに移ります。配列の全ての要素がこのコールバック関数にかけられます。コールバック関数は、値、インデックス番号、配列そのもの、の3つの引数を受け取ります。

第2引数(thisArg)を指定すると、それがコールバック関数内におけるthisの値となります。省略した場合、thisの値はundefinedです。

function predicate ( value, index, array ) {
return true ;
}
チュートリアル
例えば、配列から6より大きい値のインデックス番号を検索したい、というテーマでArray.prototype.findIndex()を利用してみます。コールバック関数は、引数で受け取った値(value)が6より大きければ条件を満たすのでtrue、それ以外なら条件を満たさないのでfalseを返すようになっています。

var array = [ 3, 6, 9, 4, 7, 8 ] ;

var predicate = function ( value, index, sourceArray ) {
if( value >= 6 ) {
return true ;

} else {
    return false ;

}

}

array.findIndex( predicate ) ; // 2
処理は内部で次のように繰り返されます。trueが返った時点でその値のインデックス番号がメソッドの返り値に決定して処理は終了します。

predicate( 3, 0, array ) ; // false
predicate( 6, 1, array ) ; // false
predicate( 9, 2, array ) ; // true (この時点で処理を終了)
predicate( 4, 3, array ) ; // false
predicate( 7, 4, array ) ; // true
predicate( 8, 5, array ) ; // true

参考https://lab.syncer.jp/Web/JavaScript/Reference/Global_Object/Array/prototype/findIndex/

0
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
hirory

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
0
Help us understand the problem. What is going on with this article?