@@ -872,7 +872,6 @@ var f = p2.fields;
872872If a ` predicate ` function does not return a truthy value for any tuple element, the method returns ` null ` .
873873
874874``` javascript
875-
876875var factory = namedtypedtuple ( [ ' x' , ' y' , ' z' ] );
877876
878877var p1 = factory ( [ 1.0 , 0.0 , - 1.0 ] );
@@ -914,6 +913,198 @@ var n = ctx.count;
914913// returns 3
915914```
916915
916+ <a name =" method-find " ></a >
917+
918+ #### tuple.find( predicate\[ , thisArg] )
919+
920+ Returns the first tuple element for which a provided ` predicate ` function returns a truthy value.
921+
922+ ``` javascript
923+ var factory = namedtypedtuple ( [ ' x' , ' y' , ' z' ] );
924+
925+ var tuple = factory ( [ 1.0 , 0.0 , - 1.0 ] );
926+
927+ function predicate ( v ) {
928+ return ( v < 0.0 );
929+ }
930+
931+ var v = tuple .find ( predicate );
932+ // returns -1.0
933+ ```
934+
935+ If a ` predicate ` function does not return a truthy value for any tuple element, the method returns ` undefined ` .
936+
937+ ``` javascript
938+ var factory = namedtypedtuple ( [ ' x' , ' y' , ' z' ] );
939+
940+ var tuple = factory ( [ 1.0 , 0.0 , - 1.0 ] );
941+
942+ function predicate ( v ) {
943+ return ( v < - 10.0 );
944+ }
945+
946+ var v = tuple .find ( predicate );
947+ // returns undefined
948+ ```
949+
950+ A ` predicate ` function is provided four arguments:
951+
952+ - ` value ` : tuple element
953+ - ` index ` : tuple index
954+ - ` field ` : tuple field name
955+ - ` tuple ` : tuple on which the method is invoked
956+
957+ To set the callback execution context, provide a ` thisArg ` .
958+
959+ ``` javascript
960+ var factory = namedtypedtuple ( [ ' x' , ' y' , ' z' ] );
961+
962+ var tuple = factory ( [ 1.0 , 0.0 , - 1.0 ] );
963+
964+ function predicate ( v ) {
965+ this .count += 1 ;
966+ return ( v < 0.0 );
967+ }
968+
969+ var ctx = {
970+ ' count' : 0
971+ };
972+
973+ var v = tuple .find ( predicate, ctx );
974+ // returns -1.0
975+
976+ var n = ctx .count ;
977+ // returns 3
978+ ```
979+
980+ <a name =" method-find-index " ></a >
981+
982+ #### tuple.findIndex( predicate\[ , thisArg] )
983+
984+ Returns the index of the first tuple element for which a provided ` predicate ` function returns a truthy value.
985+
986+ ``` javascript
987+ var factory = namedtypedtuple ( [ ' x' , ' y' , ' z' ] );
988+
989+ var tuple = factory ( [ 1.0 , 0.0 , - 1.0 ] );
990+
991+ function predicate ( v ) {
992+ return ( v < 0.0 );
993+ }
994+
995+ var idx = tuple .findIndex ( predicate );
996+ // returns 2
997+ ```
998+
999+ If a ` predicate ` function does not return a truthy value for any tuple element, the method returns ` -1 ` .
1000+
1001+ ``` javascript
1002+ var factory = namedtypedtuple ( [ ' x' , ' y' , ' z' ] );
1003+
1004+ var tuple = factory ( [ 1.0 , 0.0 , - 1.0 ] );
1005+
1006+ function predicate ( v ) {
1007+ return ( v < - 10.0 );
1008+ }
1009+
1010+ var idx = tuple .findIndex ( predicate );
1011+ // returns -1
1012+ ```
1013+
1014+ A ` predicate ` function is provided four arguments:
1015+
1016+ - ` value ` : tuple element
1017+ - ` index ` : tuple index
1018+ - ` field ` : tuple field name
1019+ - ` tuple ` : tuple on which the method is invoked
1020+
1021+ To set the callback execution context, provide a ` thisArg ` .
1022+
1023+ ``` javascript
1024+ var factory = namedtypedtuple ( [ ' x' , ' y' , ' z' ] );
1025+
1026+ var tuple = factory ( [ 1.0 , 0.0 , - 1.0 ] );
1027+
1028+ function predicate ( v ) {
1029+ this .count += 1 ;
1030+ return ( v < 0.0 );
1031+ }
1032+
1033+ var ctx = {
1034+ ' count' : 0
1035+ };
1036+
1037+ var idx = tuple .findIndex ( predicate, ctx );
1038+ // returns 2
1039+
1040+ var n = ctx .count ;
1041+ // returns 3
1042+ ```
1043+
1044+ <a name =" method-find-field " ></a >
1045+
1046+ #### tuple.findField( predicate\[ , thisArg] )
1047+
1048+ Returns the field of the first tuple element for which a provided ` predicate ` function returns a truthy value.
1049+
1050+ ``` javascript
1051+ var factory = namedtypedtuple ( [ ' x' , ' y' , ' z' ] );
1052+
1053+ var tuple = factory ( [ 1.0 , 0.0 , - 1.0 ] );
1054+
1055+ function predicate ( v ) {
1056+ return ( v < 0.0 );
1057+ }
1058+
1059+ var f = tuple .findField ( predicate );
1060+ // returns 'z'
1061+ ```
1062+
1063+ If a ` predicate ` function does not return a truthy value for any tuple element, the method returns ` undefined ` .
1064+
1065+ ``` javascript
1066+ var factory = namedtypedtuple ( [ ' x' , ' y' , ' z' ] );
1067+
1068+ var tuple = factory ( [ 1.0 , 0.0 , - 1.0 ] );
1069+
1070+ function predicate ( v ) {
1071+ return ( v < - 10.0 );
1072+ }
1073+
1074+ var f = tuple .findField ( predicate );
1075+ // returns undefined
1076+ ```
1077+
1078+ A ` predicate ` function is provided four arguments:
1079+
1080+ - ` value ` : tuple element
1081+ - ` index ` : tuple index
1082+ - ` field ` : tuple field name
1083+ - ` tuple ` : tuple on which the method is invoked
1084+
1085+ To set the callback execution context, provide a ` thisArg ` .
1086+
1087+ ``` javascript
1088+ var factory = namedtypedtuple ( [ ' x' , ' y' , ' z' ] );
1089+
1090+ var tuple = factory ( [ 1.0 , 0.0 , - 1.0 ] );
1091+
1092+ function predicate ( v ) {
1093+ this .count += 1 ;
1094+ return ( v < 0.0 );
1095+ }
1096+
1097+ var ctx = {
1098+ ' count' : 0
1099+ };
1100+
1101+ var f = tuple .findField ( predicate, ctx );
1102+ // returns 'z'
1103+
1104+ var n = ctx .count ;
1105+ // returns 3
1106+ ```
1107+
9171108</section >
9181109
9191110<!-- /.usage -->
0 commit comments