14514f5e3Sopenharmony_ci/*
24514f5e3Sopenharmony_ci * Copyright (c) 2023 Huawei Device Co., Ltd.
34514f5e3Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
44514f5e3Sopenharmony_ci * you may not use this file except in compliance with the License.
54514f5e3Sopenharmony_ci * You may obtain a copy of the License at
64514f5e3Sopenharmony_ci *
74514f5e3Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
84514f5e3Sopenharmony_ci *
94514f5e3Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
104514f5e3Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
114514f5e3Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
124514f5e3Sopenharmony_ci * See the License for the specific language governing permissions and
134514f5e3Sopenharmony_ci * limitations under the License.
144514f5e3Sopenharmony_ci */
154514f5e3Sopenharmony_ci
164514f5e3Sopenharmony_ci/*
174514f5e3Sopenharmony_ci * @tc.name:findIndex
184514f5e3Sopenharmony_ci * @tc.desc:test array.findIndex
194514f5e3Sopenharmony_ci * @tc.type: FUNC
204514f5e3Sopenharmony_ci * @tc.require:
214514f5e3Sopenharmony_ci */
224514f5e3Sopenharmony_ci
234514f5e3Sopenharmony_ciconst array1 = [5, 12, 8, 130, 44];
244514f5e3Sopenharmony_ciconst isLargeNumber = (element) => element > 13;
254514f5e3Sopenharmony_ciprint(array1.findIndex(isLargeNumber));
264514f5e3Sopenharmony_ci
274514f5e3Sopenharmony_ciconst arrayLike = {
284514f5e3Sopenharmony_ci	  length: 3,
294514f5e3Sopenharmony_ci	  0: 2,
304514f5e3Sopenharmony_ci	  1: 7.3,
314514f5e3Sopenharmony_ci	  2: 4,
324514f5e3Sopenharmony_ci};
334514f5e3Sopenharmony_ciprint(Array.prototype.findIndex.call(arrayLike, (x) => !Number.isInteger(x)));
344514f5e3Sopenharmony_ciprint([1, , 3].findIndex((x) => x === undefined));
354514f5e3Sopenharmony_cifunction isPrime(element) {
364514f5e3Sopenharmony_ci	if (element % 2 === 0 || element < 2) {
374514f5e3Sopenharmony_ci		return false;
384514f5e3Sopenharmony_ci	}
394514f5e3Sopenharmony_ci	for (let factor = 3; factor <= Math.sqrt(element); factor += 2) {
404514f5e3Sopenharmony_ci	    if (element % factor === 0) {
414514f5e3Sopenharmony_ci			return false;
424514f5e3Sopenharmony_ci		}
434514f5e3Sopenharmony_ci	}
444514f5e3Sopenharmony_ci	return true;
454514f5e3Sopenharmony_ci}
464514f5e3Sopenharmony_ciprint([4, 6, 8, 9, 12].findIndex(isPrime));
474514f5e3Sopenharmony_ciprint([4, 6, 7, 9, 12].findIndex(isPrime));
484514f5e3Sopenharmony_ci
494514f5e3Sopenharmony_ciconst words = ["spray", "limit", "limits"];
504514f5e3Sopenharmony_ciconst deleteWords = words.findIndex((word, index, arr) => {
514514f5e3Sopenharmony_ci  arr.length=2
524514f5e3Sopenharmony_ci  return word == "limits"
534514f5e3Sopenharmony_ci});
544514f5e3Sopenharmony_ciprint(deleteWords);
554514f5e3Sopenharmony_ciprint(words.length);
564514f5e3Sopenharmony_ci
574514f5e3Sopenharmony_civar array = ["first", "second"];
584514f5e3Sopenharmony_ciObject.defineProperty(array, 0, {
594514f5e3Sopenharmony_ci  get: function() {
604514f5e3Sopenharmony_ci    array.length = 0;
614514f5e3Sopenharmony_ci    return "first";
624514f5e3Sopenharmony_ci  }
634514f5e3Sopenharmony_ci});
644514f5e3Sopenharmony_ciconst hasFirst = (element) => element == "first";
654514f5e3Sopenharmony_ciprint(array.findIndex(hasFirst));
66