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