14514f5e3Sopenharmony_ci/* 24514f5e3Sopenharmony_ci * Copyright (c) 2021 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:array 184514f5e3Sopenharmony_ci * @tc.desc:test Array 194514f5e3Sopenharmony_ci * @tc.type: FUNC 204514f5e3Sopenharmony_ci * @tc.require: issueI5NO8G 214514f5e3Sopenharmony_ci */ 224514f5e3Sopenharmony_civar arr = new Array(100); 234514f5e3Sopenharmony_civar a = arr.slice(90, 100); 244514f5e3Sopenharmony_ciprint(a.length); 254514f5e3Sopenharmony_ci 264514f5e3Sopenharmony_civar arr1 = [1, 1, 1, 1, 1, 1]; 274514f5e3Sopenharmony_ciarr1.fill(0, 2, 4); 284514f5e3Sopenharmony_ciprint(arr1); 294514f5e3Sopenharmony_ci 304514f5e3Sopenharmony_civar arr2 = new Array(100); 314514f5e3Sopenharmony_ciarr2.fill(0, 2, 4); 324514f5e3Sopenharmony_civar a1 = arr2.slice(0, 5); 334514f5e3Sopenharmony_ciprint(arr2.length); 344514f5e3Sopenharmony_ciprint(a1); 354514f5e3Sopenharmony_ci 364514f5e3Sopenharmony_civar arr3 = [1, 2, 3, 4, 5, 6]; 374514f5e3Sopenharmony_ciarr3.pop(); 384514f5e3Sopenharmony_ciprint(arr3.length); 394514f5e3Sopenharmony_ciprint(arr3); 404514f5e3Sopenharmony_ci 414514f5e3Sopenharmony_civar arr4 = [1, 3, 4]; 424514f5e3Sopenharmony_ciarr4.splice(1, 0, 2); 434514f5e3Sopenharmony_ciprint(arr4.length); 444514f5e3Sopenharmony_ciprint(arr4); 454514f5e3Sopenharmony_ci// 1, 2, 3, 4 464514f5e3Sopenharmony_civar arr4 = [1, 2, 3, 4]; 474514f5e3Sopenharmony_ciarr4.splice(3, 1, 3); 484514f5e3Sopenharmony_ciprint(arr4.length); 494514f5e3Sopenharmony_ciprint(arr4); 504514f5e3Sopenharmony_ci// 1, 2, 3, 3 514514f5e3Sopenharmony_ci 524514f5e3Sopenharmony_civar arr5 = [1, 2, 3, 4, 5, 6]; 534514f5e3Sopenharmony_ciarr5.shift(); 544514f5e3Sopenharmony_ciprint(arr5.length); 554514f5e3Sopenharmony_ciprint(arr5); 564514f5e3Sopenharmony_ci// 1, 2, 3, 4, 5 574514f5e3Sopenharmony_ci 584514f5e3Sopenharmony_civar arr6 = [1, 2, 3, 4, 5]; 594514f5e3Sopenharmony_ciarr6.reverse(); 604514f5e3Sopenharmony_ciprint(arr6); 614514f5e3Sopenharmony_ci 624514f5e3Sopenharmony_civar arr7 = []; 634514f5e3Sopenharmony_ciarr7[2] = 10; 644514f5e3Sopenharmony_ciprint(arr7.pop()); // 10 654514f5e3Sopenharmony_ciprint(arr7.pop()); // undefined 664514f5e3Sopenharmony_ciprint(arr7.pop()); // undefined 674514f5e3Sopenharmony_ci 684514f5e3Sopenharmony_civar arr8 = []; 694514f5e3Sopenharmony_ciarr8[1] = 8; 704514f5e3Sopenharmony_ciprint(arr8.shift()); // undefined 714514f5e3Sopenharmony_ciprint(arr8.shift()); // 8 724514f5e3Sopenharmony_ciprint(arr8.shift()); // undefined 734514f5e3Sopenharmony_ci 744514f5e3Sopenharmony_ci// Test on Array::Splice 754514f5e3Sopenharmony_civar arr9 = new Array(9); 764514f5e3Sopenharmony_ciprint(arr9.length); // 9 774514f5e3Sopenharmony_ciarr9.splice(0, 9); 784514f5e3Sopenharmony_ciprint(arr9.length); // 0 794514f5e3Sopenharmony_cifor (let i = 0; i < arr9.length; i++) { 804514f5e3Sopenharmony_ci print(arr9[i]); 814514f5e3Sopenharmony_ci} 824514f5e3Sopenharmony_ci 834514f5e3Sopenharmony_civar arr10 = new Array(9); 844514f5e3Sopenharmony_ciprint(arr10.length); // 9 854514f5e3Sopenharmony_ciarr10.splice(0, 8, 1); 864514f5e3Sopenharmony_ciprint(arr10.length); // 2 874514f5e3Sopenharmony_cifor (let i = 0; i < arr10.length; i++) { 884514f5e3Sopenharmony_ci print(arr10[i]); // 1, undefined 894514f5e3Sopenharmony_ci} 904514f5e3Sopenharmony_ci 914514f5e3Sopenharmony_civar arr11 = new Array(9); 924514f5e3Sopenharmony_ciprint(arr11.length); // 9 934514f5e3Sopenharmony_ciarr11.splice(1, 8, 1); 944514f5e3Sopenharmony_ciprint(arr11.length); // 2 954514f5e3Sopenharmony_cifor (let i = 0; i < arr11.length; i++) { 964514f5e3Sopenharmony_ci print(arr11[i]); // undefined, 1 974514f5e3Sopenharmony_ci} 984514f5e3Sopenharmony_ci 994514f5e3Sopenharmony_civar arr12 = new Array(9); 1004514f5e3Sopenharmony_ciprint(arr12.length); // 9 1014514f5e3Sopenharmony_ciarr12.splice(0, 4, 1, 2, 3, 4, 5); 1024514f5e3Sopenharmony_ciprint(arr12.length); // 10 1034514f5e3Sopenharmony_cifor (let i = 0; i < arr12.length; i++) { 1044514f5e3Sopenharmony_ci print(arr12[i]); // 1, 2, 3, 4, 5, undefined, undefined, undefined, undefined, undefined 1054514f5e3Sopenharmony_ci} 1064514f5e3Sopenharmony_ci 1074514f5e3Sopenharmony_civar arr13 = new Array(9); 1084514f5e3Sopenharmony_ciprint(arr13.length); // 9 1094514f5e3Sopenharmony_ciarr13.splice(7, 5, 1, 2, 3); 1104514f5e3Sopenharmony_ciprint(arr13.length); // 10 1114514f5e3Sopenharmony_cifor (var i = 0; i < arr13.length; i++) { 1124514f5e3Sopenharmony_ci print(arr13[i]); // undefined, undefined, undefined, undefined, undefined, undefined, undefined, 1, 2, 3 1134514f5e3Sopenharmony_ci} 1144514f5e3Sopenharmony_ci 1154514f5e3Sopenharmony_civar arr14 = Array.apply(null, Array(16)); 1164514f5e3Sopenharmony_ciprint(arr14.length); 1174514f5e3Sopenharmony_civar arr15 = Array.apply(null, [1, 2, 3, 4, 5, 6]); 1184514f5e3Sopenharmony_ciprint(arr15.length); 1194514f5e3Sopenharmony_ci 1204514f5e3Sopenharmony_civar a = '0'; 1214514f5e3Sopenharmony_ciprint(Array(5).indexOf(a)); 1224514f5e3Sopenharmony_ci 1234514f5e3Sopenharmony_ciconst v3 = new Float32Array(7); 1244514f5e3Sopenharmony_citry { 1254514f5e3Sopenharmony_ci v3.filter(Float32Array) 1264514f5e3Sopenharmony_ci} catch (error) { 1274514f5e3Sopenharmony_ci print("The NewTarget is undefined") 1284514f5e3Sopenharmony_ci} 1294514f5e3Sopenharmony_ci 1304514f5e3Sopenharmony_ciconst v20 = new Array(2); 1314514f5e3Sopenharmony_cilet v21; 1324514f5e3Sopenharmony_citry { 1334514f5e3Sopenharmony_ci v21 = v20.pop(); 1344514f5e3Sopenharmony_ci print(v21); 1354514f5e3Sopenharmony_ci} catch (error) { 1364514f5e3Sopenharmony_ci 1374514f5e3Sopenharmony_ci} 1384514f5e3Sopenharmony_ci 1394514f5e3Sopenharmony_civar arr21 = [1, 2, 3, 4, , 6]; 1404514f5e3Sopenharmony_ciprint(arr21.at(0)); 1414514f5e3Sopenharmony_ciprint(arr21.at(5)); 1424514f5e3Sopenharmony_ciprint(arr21.at(-1)); 1434514f5e3Sopenharmony_ciprint(arr21.at(6)); 1444514f5e3Sopenharmony_ciprint(arr21.at('1.9')); 1454514f5e3Sopenharmony_ciprint(arr21.at(true)); 1464514f5e3Sopenharmony_civar arr22 = arr21.toReversed(); 1474514f5e3Sopenharmony_ciprint(arr22) 1484514f5e3Sopenharmony_ciprint(arr21) 1494514f5e3Sopenharmony_civar arr23 = [1, 2, 3, 4, 5]; 1504514f5e3Sopenharmony_ciprint(arr23.with(2, 6)); // [1, 2, 6, 4, 5] 1514514f5e3Sopenharmony_ciprint(arr23); // [1, 2, 3, 4, 5] 1524514f5e3Sopenharmony_ci 1534514f5e3Sopenharmony_ciconst months = ["Mar", "Jan", "Feb", "Dec"]; 1544514f5e3Sopenharmony_ciconst sortedMonths = months.toSorted(); 1554514f5e3Sopenharmony_ciprint(sortedMonths); // ['Dec', 'Feb', 'Jan', 'Mar'] 1564514f5e3Sopenharmony_ciprint(months); // ['Mar', 'Jan', 'Feb', 'Dec'] 1574514f5e3Sopenharmony_ci 1584514f5e3Sopenharmony_ciconst values = [1, 10, 21, 2]; 1594514f5e3Sopenharmony_ciconst sortedValues = values.toSorted((a, b) => { 1604514f5e3Sopenharmony_ci return a - b 1614514f5e3Sopenharmony_ci}); 1624514f5e3Sopenharmony_ciprint(sortedValues); // [1, 2, 10, 21] 1634514f5e3Sopenharmony_ciprint(values); // [1, 10, 21, 2] 1644514f5e3Sopenharmony_ci 1654514f5e3Sopenharmony_ciconst arrs = new Array(6); 1664514f5e3Sopenharmony_cifor (let i = 0; i < 6; i++) { 1674514f5e3Sopenharmony_ci var str = i.toString(); 1684514f5e3Sopenharmony_ci if (i != 1) { 1694514f5e3Sopenharmony_ci arrs[i] = str; 1704514f5e3Sopenharmony_ci } 1714514f5e3Sopenharmony_ci} 1724514f5e3Sopenharmony_ciarrs.reverse(); 1734514f5e3Sopenharmony_ciprint(arrs); // 5,4,3,2,,0 1744514f5e3Sopenharmony_ci 1754514f5e3Sopenharmony_cifunction handleExpectedErrorCaught(prompt, e) { 1764514f5e3Sopenharmony_ci if (e instanceof Error) { 1774514f5e3Sopenharmony_ci print(`Expected ${e.name} caught in ${prompt}.`); 1784514f5e3Sopenharmony_ci } else { 1794514f5e3Sopenharmony_ci print(`Expected error message caught in ${prompt}.`); 1804514f5e3Sopenharmony_ci } 1814514f5e3Sopenharmony_ci} 1824514f5e3Sopenharmony_ci 1834514f5e3Sopenharmony_cifunction handleUnexpectedErrorCaught(prompt, e) { 1844514f5e3Sopenharmony_ci if (e instanceof Error) { 1854514f5e3Sopenharmony_ci print(`Unexpected ${e.name} caught in ${prompt}: ${e.message}`); 1864514f5e3Sopenharmony_ci if (typeof e.stack !== 'undefined') { 1874514f5e3Sopenharmony_ci print(`Stacktrace:\n${e.stack}`); 1884514f5e3Sopenharmony_ci } 1894514f5e3Sopenharmony_ci } else { 1904514f5e3Sopenharmony_ci print(`Unexpected error message caught in ${prompt}: ${e}`); 1914514f5e3Sopenharmony_ci } 1924514f5e3Sopenharmony_ci} 1934514f5e3Sopenharmony_ci 1944514f5e3Sopenharmony_ci// Test cases for reverse() 1954514f5e3Sopenharmony_ciprint("======== Begin: Array.prototype.reverse() ========"); 1964514f5e3Sopenharmony_citry { 1974514f5e3Sopenharmony_ci const arr0 = []; 1984514f5e3Sopenharmony_ci print(`arr0.reverse() === arr0 ? ${arr0.reverse() === arr0}`); // true 1994514f5e3Sopenharmony_ci print(`arr0.length after reverse() called = ${arr0.length}`); // 0 2004514f5e3Sopenharmony_ci 2014514f5e3Sopenharmony_ci const arr1 = [1]; 2024514f5e3Sopenharmony_ci print(`arr1.reverse() === arr1 ? ${arr1.reverse() === arr1}`); // true 2034514f5e3Sopenharmony_ci print(`arr1 after reverse() called = ${arr1}`); // 1 2044514f5e3Sopenharmony_ci 2054514f5e3Sopenharmony_ci const arrWithHoles = []; 2064514f5e3Sopenharmony_ci arrWithHoles[1] = 1; 2074514f5e3Sopenharmony_ci arrWithHoles[4] = 4; 2084514f5e3Sopenharmony_ci arrWithHoles[6] = undefined; 2094514f5e3Sopenharmony_ci arrWithHoles.length = 10; 2104514f5e3Sopenharmony_ci // arrWithHoles = [Hole, 1, Hole, Hole, 4, Hole, undefined, Hole, Hole, Hole] 2114514f5e3Sopenharmony_ci print(`arrWithHoles before reverse() called = ${arrWithHoles}`); // ,1,,,4,,,,, 2124514f5e3Sopenharmony_ci print(`arrWithHoles.reverse() = ${arrWithHoles.reverse()}`); // ,,,,,4,,,1, 2134514f5e3Sopenharmony_ci print(`arrWithHoles after reverse() called = ${arrWithHoles}`); // ,,,,,4,,,1, 2144514f5e3Sopenharmony_ci} catch (e) { 2154514f5e3Sopenharmony_ci handleUnexpectedErrorCaught(e); 2164514f5e3Sopenharmony_ci} 2174514f5e3Sopenharmony_ciprint("======== End: Array.prototype.reverse() ========"); 2184514f5e3Sopenharmony_ci 2194514f5e3Sopenharmony_ciprint("======== Begin: Array.prototype.indexOf() & Array.prototype.lastIndexOf() ========"); 2204514f5e3Sopenharmony_ci// Test case for indexOf() and lastIndexOf() 2214514f5e3Sopenharmony_citry { 2224514f5e3Sopenharmony_ci const arr = [0, 10, 20]; 2234514f5e3Sopenharmony_ci arr.length = 10; 2244514f5e3Sopenharmony_ci arr[3] = 80; 2254514f5e3Sopenharmony_ci arr[4] = 40; 2264514f5e3Sopenharmony_ci arr[6] = undefined; 2274514f5e3Sopenharmony_ci arr[7] = 10; 2284514f5e3Sopenharmony_ci arr[8] = "80"; 2294514f5e3Sopenharmony_ci print("arr = [0, 10, 20, 80, 40, Hole, undefined, 10, \"80\", Hole]"); 2304514f5e3Sopenharmony_ci // prompt1, results1, prompt2, results2, ... 2314514f5e3Sopenharmony_ci const resultGroups = [ 2324514f5e3Sopenharmony_ci "Group 1: 0 <= fromIndex < arr.length", [ 2334514f5e3Sopenharmony_ci arr.indexOf(40), // 4 2344514f5e3Sopenharmony_ci arr.indexOf(40, 5), // -1 2354514f5e3Sopenharmony_ci arr.indexOf(10), // 1 2364514f5e3Sopenharmony_ci arr.indexOf(10, 2), // 7 2374514f5e3Sopenharmony_ci arr.lastIndexOf(40), // 4 2384514f5e3Sopenharmony_ci arr.lastIndexOf(40, 3), // -1 2394514f5e3Sopenharmony_ci arr.lastIndexOf(10), // 7 2404514f5e3Sopenharmony_ci arr.lastIndexOf(10, 6), // 1 2414514f5e3Sopenharmony_ci ], 2424514f5e3Sopenharmony_ci "Group 2: -arr.length <= fromIndex < 0", [ 2434514f5e3Sopenharmony_ci arr.indexOf(40, -4), // -1 2444514f5e3Sopenharmony_ci arr.indexOf(40, -8), // 4 2454514f5e3Sopenharmony_ci arr.indexOf(10, -4), // 7 2464514f5e3Sopenharmony_ci arr.indexOf(10, -10), // 1 2474514f5e3Sopenharmony_ci arr.lastIndexOf(40, -4), // 4 2484514f5e3Sopenharmony_ci arr.lastIndexOf(40, -8), // -1 2494514f5e3Sopenharmony_ci arr.lastIndexOf(10, -4), // 1 2504514f5e3Sopenharmony_ci arr.lastIndexOf(10, -10), // -1 2514514f5e3Sopenharmony_ci arr.indexOf(0, -arr.length), // 0 2524514f5e3Sopenharmony_ci arr.indexOf(10, -arr.length), // 1 2534514f5e3Sopenharmony_ci arr.lastIndexOf(0, -arr.length), // 0 2544514f5e3Sopenharmony_ci arr.lastIndexOf(10, -arr.length), // -1 2554514f5e3Sopenharmony_ci ], 2564514f5e3Sopenharmony_ci "Group 3: fromIndex >= arr.length", [ 2574514f5e3Sopenharmony_ci arr.indexOf(0, arr.length), // -1 2584514f5e3Sopenharmony_ci arr.indexOf(0, arr.length + 10), // -1 2594514f5e3Sopenharmony_ci arr.indexOf(10, arr.length), 2604514f5e3Sopenharmony_ci arr.indexOf(10, arr.length + 10), 2614514f5e3Sopenharmony_ci arr.lastIndexOf(0, arr.length), // 0 2624514f5e3Sopenharmony_ci arr.lastIndexOf(0, arr.length + 10), // 0 2634514f5e3Sopenharmony_ci ], 2644514f5e3Sopenharmony_ci "Group 4: fromIndex < -arr.length", [ 2654514f5e3Sopenharmony_ci arr.indexOf(0, -arr.length - 10), // 0 2664514f5e3Sopenharmony_ci arr.lastIndexOf(0, -arr.length - 10) // -1 2674514f5e3Sopenharmony_ci ], 2684514f5e3Sopenharmony_ci "Group 5: fromIndex in [Infinity, -Infinity]", [ 2694514f5e3Sopenharmony_ci arr.indexOf(10, -Infinity), // 1 2704514f5e3Sopenharmony_ci arr.indexOf(10, +Infinity), // -1 2714514f5e3Sopenharmony_ci arr.lastIndexOf(10, -Infinity), // -1 2724514f5e3Sopenharmony_ci arr.lastIndexOf(10, +Infinity) // 7 2734514f5e3Sopenharmony_ci ], 2744514f5e3Sopenharmony_ci "Group 6: fromIndex is NaN", [ 2754514f5e3Sopenharmony_ci arr.indexOf(0, NaN), // 0 2764514f5e3Sopenharmony_ci arr.indexOf(10, NaN), // 1 2774514f5e3Sopenharmony_ci arr.lastIndexOf(0, NaN), // 0 2784514f5e3Sopenharmony_ci arr.lastIndexOf(10, NaN), // -1 2794514f5e3Sopenharmony_ci ], 2804514f5e3Sopenharmony_ci "Group 7: fromIndex is not of type 'number'", [ 2814514f5e3Sopenharmony_ci arr.indexOf(10, '2'), // 7 2824514f5e3Sopenharmony_ci arr.lastIndexOf(10, '2'), // 1 2834514f5e3Sopenharmony_ci arr.indexOf(10, { valueOf() { 2844514f5e3Sopenharmony_ci return 3; 2854514f5e3Sopenharmony_ci } }), // 7 2864514f5e3Sopenharmony_ci arr.indexOf(10, { valueOf() { 2874514f5e3Sopenharmony_ci return 3; 2884514f5e3Sopenharmony_ci } }), // 1 2894514f5e3Sopenharmony_ci ], 2904514f5e3Sopenharmony_ci "Group 8: Strict equality checking", [ 2914514f5e3Sopenharmony_ci arr.indexOf("80"), // 8 2924514f5e3Sopenharmony_ci arr.lastIndexOf(80), // 3 2934514f5e3Sopenharmony_ci ], 2944514f5e3Sopenharmony_ci "Group 9: Searching undefined and null", [ 2954514f5e3Sopenharmony_ci arr.indexOf(), // 6 2964514f5e3Sopenharmony_ci arr.indexOf(undefined), // 6 2974514f5e3Sopenharmony_ci arr.indexOf(null), // -1 2984514f5e3Sopenharmony_ci arr.lastIndexOf(), // 6 2994514f5e3Sopenharmony_ci arr.lastIndexOf(undefined), // 6 3004514f5e3Sopenharmony_ci arr.lastIndexOf(null) // -1 3014514f5e3Sopenharmony_ci ] 3024514f5e3Sopenharmony_ci ]; 3034514f5e3Sopenharmony_ci for (let i = 0; i < resultGroups.length; i += 2) { 3044514f5e3Sopenharmony_ci print(`${resultGroups[i]}: ${resultGroups[i + 1]}`); 3054514f5e3Sopenharmony_ci } 3064514f5e3Sopenharmony_ci 3074514f5e3Sopenharmony_ci print("Group 10: fromIndex with side effects:"); 3084514f5e3Sopenharmony_ci let accessCount = 0; 3094514f5e3Sopenharmony_ci const arrProxyHandler = { 3104514f5e3Sopenharmony_ci has(target, key) { 3114514f5e3Sopenharmony_ci accessCount += 1; 3124514f5e3Sopenharmony_ci return key in target; 3134514f5e3Sopenharmony_ci } 3144514f5e3Sopenharmony_ci }; 3154514f5e3Sopenharmony_ci // Details on why accessCount = 6 can be seen in ECMAScript specifications: 3164514f5e3Sopenharmony_ci // https://tc39.es/ecma262/multipage/indexed-collections.html#sec-array.prototype.indexof 3174514f5e3Sopenharmony_ci accessCount = 0; 3184514f5e3Sopenharmony_ci const arr2 = new Proxy([10, 20, 30, 40, 50, 60], arrProxyHandler); 3194514f5e3Sopenharmony_ci const result2 = arr2.indexOf(30, { 3204514f5e3Sopenharmony_ci valueOf() { 3214514f5e3Sopenharmony_ci arr2.length = 2; // Side effects to arr2 3224514f5e3Sopenharmony_ci return 0; 3234514f5e3Sopenharmony_ci } 3244514f5e3Sopenharmony_ci }); // Expected: -1 (with accessCount = 6) 3254514f5e3Sopenharmony_ci print(` - indexOf: result = ${result2}, accessCount = ${accessCount}`); 3264514f5e3Sopenharmony_ci // Details on why accessCount = 6 can be seen in ECMAScript specifications: 3274514f5e3Sopenharmony_ci // https://tc39.es/ecma262/multipage/indexed-collections.html#sec-array.prototype.lastindexof 3284514f5e3Sopenharmony_ci accessCount = 0; 3294514f5e3Sopenharmony_ci const arr3 = new Proxy([15, 25, 35, 45, 55, 65], arrProxyHandler); 3304514f5e3Sopenharmony_ci const result3 = arr3.lastIndexOf(45, { 3314514f5e3Sopenharmony_ci valueOf() { 3324514f5e3Sopenharmony_ci arr3.length = 2; // Side effects to arr3 3334514f5e3Sopenharmony_ci return 5; 3344514f5e3Sopenharmony_ci } 3354514f5e3Sopenharmony_ci }); // Expected: -1 (with accessCount = 6) 3364514f5e3Sopenharmony_ci print(` - lastIndexOf: result = ${result3}, accesscount = ${accessCount}`); 3374514f5e3Sopenharmony_ci 3384514f5e3Sopenharmony_ci print("Group 11: fromIndex that triggers exceptions:"); 3394514f5e3Sopenharmony_ci for (let [prompt, fromIndex] of [["bigint", 1n], ["symbol", Symbol()]]) { 3404514f5e3Sopenharmony_ci for (let method of [Array.prototype.indexOf, Array.prototype.lastIndexOf]) { 3414514f5e3Sopenharmony_ci try { 3424514f5e3Sopenharmony_ci const result = method.call(arr, 10, fromIndex); 3434514f5e3Sopenharmony_ci print(`ERROR: Unexpected result (which is ${result}) returned by method '${method.name}': ` + 3444514f5e3Sopenharmony_ci `Expects a TypeError thrown for fromIndex type '${prompt}'.`); 3454514f5e3Sopenharmony_ci } catch (e) { 3464514f5e3Sopenharmony_ci // Expects a TypeError thrown and caught here. 3474514f5e3Sopenharmony_ci handleExpectedErrorCaught(`${method.name} when fromIndex is ${prompt}`, e); 3484514f5e3Sopenharmony_ci } 3494514f5e3Sopenharmony_ci } 3504514f5e3Sopenharmony_ci } 3514514f5e3Sopenharmony_ci} catch (e) { 3524514f5e3Sopenharmony_ci handleUnexpectedErrorCaught(e); 3534514f5e3Sopenharmony_ci} 3544514f5e3Sopenharmony_ciprint("======== End: Array.prototype.indexOf() & Array.prototype.lastIndexOf() ========"); 3554514f5e3Sopenharmony_ci 3564514f5e3Sopenharmony_ci// Test Array.prototype.filter when callbackFn is not callable 3574514f5e3Sopenharmony_citry { 3584514f5e3Sopenharmony_ci [].filter(1); 3594514f5e3Sopenharmony_ci} catch (e) { 3604514f5e3Sopenharmony_ci print("CallbackFn is not callable"); 3614514f5e3Sopenharmony_ci} 3624514f5e3Sopenharmony_ci 3634514f5e3Sopenharmony_civar getTrap = function (t, key) { 3644514f5e3Sopenharmony_ci if (key === "length") return { [Symbol.toPrimitive]() { 3654514f5e3Sopenharmony_ci return 3 3664514f5e3Sopenharmony_ci } }; 3674514f5e3Sopenharmony_ci if (key === "2") return "baz"; 3684514f5e3Sopenharmony_ci if (key === "3") return "bar"; 3694514f5e3Sopenharmony_ci}; 3704514f5e3Sopenharmony_civar target1 = []; 3714514f5e3Sopenharmony_civar obj = new Proxy(target1, { get: getTrap, has: () => true }); 3724514f5e3Sopenharmony_ciprint([].concat(obj)); 3734514f5e3Sopenharmony_ciprint(Array.prototype.concat.apply(obj)) 3744514f5e3Sopenharmony_ci 3754514f5e3Sopenharmony_ciconst v55 = new Float64Array(); 3764514f5e3Sopenharmony_ciconst v98 = [-5.335880620598348e+307, 1.0, 1.0, 2.220446049250313e-16, -1.6304390272817058e+308]; 3774514f5e3Sopenharmony_ci 3784514f5e3Sopenharmony_cifunction f99(a100) { 3794514f5e3Sopenharmony_ci} 3804514f5e3Sopenharmony_ci 3814514f5e3Sopenharmony_cifunction f110() { 3824514f5e3Sopenharmony_ci v98[2467] = v55; 3834514f5e3Sopenharmony_ci} 3844514f5e3Sopenharmony_ci 3854514f5e3Sopenharmony_ciObject.defineProperty(f99, Symbol.species, { configurable: true, enumerable: true, value: f110 }); 3864514f5e3Sopenharmony_civ98.constructor = f99; 3874514f5e3Sopenharmony_ciprint(JSON.stringify(v98.splice(4))); 3884514f5e3Sopenharmony_ci 3894514f5e3Sopenharmony_civar count; 3904514f5e3Sopenharmony_civar params; 3914514f5e3Sopenharmony_ci 3924514f5e3Sopenharmony_ciclass MyObserveArrray extends Array { 3934514f5e3Sopenharmony_ci constructor(...args) { 3944514f5e3Sopenharmony_ci super(...args); 3954514f5e3Sopenharmony_ci print("constructor") 3964514f5e3Sopenharmony_ci params = args; 3974514f5e3Sopenharmony_ci } 3984514f5e3Sopenharmony_ci 3994514f5e3Sopenharmony_ci static get [Symbol.species]() { 4004514f5e3Sopenharmony_ci print("get [Symbol.species]") 4014514f5e3Sopenharmony_ci count++; 4024514f5e3Sopenharmony_ci return this; 4034514f5e3Sopenharmony_ci } 4044514f5e3Sopenharmony_ci} 4054514f5e3Sopenharmony_ci 4064514f5e3Sopenharmony_cicount = 0; 4074514f5e3Sopenharmony_ciparams = undefined; 4084514f5e3Sopenharmony_cinew MyObserveArrray().filter(() => { 4094514f5e3Sopenharmony_ci}); 4104514f5e3Sopenharmony_ciprint(count, 1); 4114514f5e3Sopenharmony_ciprint(params, [0]); 4124514f5e3Sopenharmony_ci 4134514f5e3Sopenharmony_cicount = 0; 4144514f5e3Sopenharmony_ciparams = undefined; 4154514f5e3Sopenharmony_cinew MyObserveArrray().concat(() => { 4164514f5e3Sopenharmony_ci}); 4174514f5e3Sopenharmony_ciprint(count, 1); 4184514f5e3Sopenharmony_ciprint(params, [0]); 4194514f5e3Sopenharmony_ci 4204514f5e3Sopenharmony_cicount = 0; 4214514f5e3Sopenharmony_ciparams = undefined; 4224514f5e3Sopenharmony_cinew MyObserveArrray().slice(() => { 4234514f5e3Sopenharmony_ci}); 4244514f5e3Sopenharmony_ciprint(count, 1); 4254514f5e3Sopenharmony_ciprint(params, [0]); 4264514f5e3Sopenharmony_ci 4274514f5e3Sopenharmony_cicount = 0; 4284514f5e3Sopenharmony_ciparams = undefined; 4294514f5e3Sopenharmony_cinew MyObserveArrray().splice(() => { 4304514f5e3Sopenharmony_ci}); 4314514f5e3Sopenharmony_ciprint(count, 1); 4324514f5e3Sopenharmony_ciprint(params, [0]); 4334514f5e3Sopenharmony_ci 4344514f5e3Sopenharmony_cinew MyObserveArrray([1, 2, 3, 4]).with(0, 0); 4354514f5e3Sopenharmony_cinew MyObserveArrray([1, 2, 3, 4]).toReversed(0, 0); 4364514f5e3Sopenharmony_cinew MyObserveArrray([1, 2, 3, 4]).toSpliced(0, 0, 0); 4374514f5e3Sopenharmony_ci 4384514f5e3Sopenharmony_ciarr = new Array(1026); 4394514f5e3Sopenharmony_ciarr.fill(100); 4404514f5e3Sopenharmony_ciprint(arr.with(0, "n")[0]) 4414514f5e3Sopenharmony_ci 4424514f5e3Sopenharmony_ciarr = new Array(1026); 4434514f5e3Sopenharmony_ciarr.fill(100); 4444514f5e3Sopenharmony_ciprint(arr.toReversed()[0]) 4454514f5e3Sopenharmony_ci 4464514f5e3Sopenharmony_ciarr = new Array(1026); 4474514f5e3Sopenharmony_ciarr.fill(100); 4484514f5e3Sopenharmony_ciprint(arr.toSpliced(0, 0, 0, 0)[0]) 4494514f5e3Sopenharmony_ci 4504514f5e3Sopenharmony_civar arr25 = [] 4514514f5e3Sopenharmony_ciarr25[1025] = 0; 4524514f5e3Sopenharmony_ciprint(arr25.includes({}, 414)); 4534514f5e3Sopenharmony_ciprint(arr25.includes(1025,109)); 4544514f5e3Sopenharmony_ci 4554514f5e3Sopenharmony_civar arr26 = [] 4564514f5e3Sopenharmony_ciarr25[100] = 0; 4574514f5e3Sopenharmony_ciprint(arr25.includes({}, 26)); 4584514f5e3Sopenharmony_ci 4594514f5e3Sopenharmony_cifunction fun1(obj, name, type) { 4604514f5e3Sopenharmony_ci return typeof type === 'undefined' || typeof desc.value === type; 4614514f5e3Sopenharmony_ci} 4624514f5e3Sopenharmony_ci 4634514f5e3Sopenharmony_cifunction fun2(obj, type) { 4644514f5e3Sopenharmony_ci let properties = []; 4654514f5e3Sopenharmony_ci let proto = Object.getPrototypeOf(obj); 4664514f5e3Sopenharmony_ci while (proto && proto != Object.prototype) { 4674514f5e3Sopenharmony_ci Object.getOwnPropertyNames(proto).forEach(name => { 4684514f5e3Sopenharmony_ci if (name !== 'constructor') { 4694514f5e3Sopenharmony_ci if (fun1(proto, name, type)) properties.push(name); 4704514f5e3Sopenharmony_ci } 4714514f5e3Sopenharmony_ci }); 4724514f5e3Sopenharmony_ci proto = Object.getPrototypeOf(proto); 4734514f5e3Sopenharmony_ci } 4744514f5e3Sopenharmony_ci return properties; 4754514f5e3Sopenharmony_ci} 4764514f5e3Sopenharmony_ci 4774514f5e3Sopenharmony_cifunction fun4(seed) { 4784514f5e3Sopenharmony_ci let objects = [Object, Error, AggregateError, EvalError, RangeError, ReferenceError, SyntaxError, TypeError, URIError, String, BigInt, Function, Number, Boolean, Date, RegExp, Array, ArrayBuffer, DataView, Int8Array, Int16Array, Int32Array, Uint8Array, Uint8ClampedArray, Uint16Array, Uint32Array, Float32Array, Float64Array, BigInt64Array, BigUint64Array, Set, Map, WeakMap, WeakSet, Symbol, Proxy]; 4794514f5e3Sopenharmony_ci return objects[seed % objects.length]; 4804514f5e3Sopenharmony_ci} 4814514f5e3Sopenharmony_ci 4824514f5e3Sopenharmony_cifunction fun8(obj, seed) { 4834514f5e3Sopenharmony_ci let properties = fun2(obj); 4844514f5e3Sopenharmony_ci} 4854514f5e3Sopenharmony_ci 4864514f5e3Sopenharmony_cifun4(694532)[fun8(fun4(694532), 527224)]; 4874514f5e3Sopenharmony_ciObject.freeze(Object.prototype); 4884514f5e3Sopenharmony_ci 4894514f5e3Sopenharmony_ciArray.prototype.length = 3000; 4904514f5e3Sopenharmony_ciprint(Array.prototype.length) 4914514f5e3Sopenharmony_ci 4924514f5e3Sopenharmony_cilet unscopables1 = Array.prototype[Symbol.unscopables]; 4934514f5e3Sopenharmony_cilet unscopables2 = Array.prototype[Symbol.unscopables]; 4944514f5e3Sopenharmony_ciprint(unscopables1 == unscopables2) 4954514f5e3Sopenharmony_ci 4964514f5e3Sopenharmony_ciarr = [] 4974514f5e3Sopenharmony_cilet index = 4294967291; 4984514f5e3Sopenharmony_ciarr[index] = 0; 4994514f5e3Sopenharmony_ciarr.length = 10; 5004514f5e3Sopenharmony_ciarr.fill(10); 5014514f5e3Sopenharmony_ciprint(arr) 5024514f5e3Sopenharmony_ci 5034514f5e3Sopenharmony_ci// Test case for copyWithin() 5044514f5e3Sopenharmony_civar arr_copywithin1 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; 5054514f5e3Sopenharmony_civar arr_copywithin2 = new Array(); 5064514f5e3Sopenharmony_cifor (let i = 0; i < 10; i++) arr_copywithin2[i] = i; 5074514f5e3Sopenharmony_civar arr_copywithin3 = new Array(); 5084514f5e3Sopenharmony_cifor (let i = 0; i < 10; i++) { 5094514f5e3Sopenharmony_ci if (i == 2) { 5104514f5e3Sopenharmony_ci continue; 5114514f5e3Sopenharmony_ci } 5124514f5e3Sopenharmony_ci arr_copywithin3[i] = i; 5134514f5e3Sopenharmony_ci} 5144514f5e3Sopenharmony_civar arr_copywithin4 = new Array(); 5154514f5e3Sopenharmony_cifor (let i = 0; i < 10; i++) arr_copywithin4[i] = i; 5164514f5e3Sopenharmony_civar result_copywithin1 = arr_copywithin1.copyWithin(0, 3, 7); 5174514f5e3Sopenharmony_ciprint(result_copywithin1); 5184514f5e3Sopenharmony_civar result_copywithin2 = arr_copywithin2.copyWithin(0, 3, 7); 5194514f5e3Sopenharmony_ciprint(result_copywithin2); 5204514f5e3Sopenharmony_civar arr_copywithin3 = arr_copywithin3.copyWithin(0, 0, 10); 5214514f5e3Sopenharmony_ciprint(arr_copywithin3); 5224514f5e3Sopenharmony_ci//elementskind is generic but hclass == generic hclass 5234514f5e3Sopenharmony_civar arr_copywithin4 = arr_copywithin4.copyWithin(3, 0, 6); 5244514f5e3Sopenharmony_ciprint(arr_copywithin4); 5254514f5e3Sopenharmony_ci 5264514f5e3Sopenharmony_ciconst ArraySize = 10; 5274514f5e3Sopenharmony_ciconst QuarterSize = ArraySize / 4; 5284514f5e3Sopenharmony_cilet result; 5294514f5e3Sopenharmony_cilet arr_copywithin5 = []; 5304514f5e3Sopenharmony_cilet arr_copywithin6 = []; 5314514f5e3Sopenharmony_ciarr_copywithin6.proto = arr_copywithin4; 5324514f5e3Sopenharmony_cifor (let i = 0; i < ArraySize; ++i) arr_copywithin5[i] = i; 5334514f5e3Sopenharmony_cifor (let i = 0; i < ArraySize; ++i) arr_copywithin6[i] = i; 5344514f5e3Sopenharmony_ci 5354514f5e3Sopenharmony_cifor (let i = 0; i < ArraySize; i++) { 5364514f5e3Sopenharmony_ci //elementskind is not generic 5374514f5e3Sopenharmony_ci result = arr_copywithin5.copyWithin(0, QuarterSize * 2, QuarterSize * 3); 5384514f5e3Sopenharmony_ci} 5394514f5e3Sopenharmony_ciprint(result); 5404514f5e3Sopenharmony_ci 5414514f5e3Sopenharmony_cifor (let i = 0; i < ArraySize; i++) { 5424514f5e3Sopenharmony_ci //elementskind is generic but hclass != generic hclass 5434514f5e3Sopenharmony_ci result = arr_copywithin6.copyWithin(0, QuarterSize * 2, QuarterSize * 3); 5444514f5e3Sopenharmony_ci} 5454514f5e3Sopenharmony_ciprint(result); 5464514f5e3Sopenharmony_ci 5474514f5e3Sopenharmony_ci// Test case for every() 5484514f5e3Sopenharmony_civar arr_every1 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; 5494514f5e3Sopenharmony_civar arr_every2 = new Array(); 5504514f5e3Sopenharmony_ci 5514514f5e3Sopenharmony_cifunction testEvery(element, index, array) { 5524514f5e3Sopenharmony_ci if (index == 0) { 5534514f5e3Sopenharmony_ci array.length = 6; 5544514f5e3Sopenharmony_ci } 5554514f5e3Sopenharmony_ci return element < 6; 5564514f5e3Sopenharmony_ci} 5574514f5e3Sopenharmony_ci 5584514f5e3Sopenharmony_cifunction testEvery4(element, index, array) { 5594514f5e3Sopenharmony_ci array.pop(); 5604514f5e3Sopenharmony_ci array.pop(); 5614514f5e3Sopenharmony_ci array.pop(); 5624514f5e3Sopenharmony_ci return element < 6; 5634514f5e3Sopenharmony_ci} 5644514f5e3Sopenharmony_ci 5654514f5e3Sopenharmony_cifor (let i = 0; i < 10; i++) arr_every2[i] = i; 5664514f5e3Sopenharmony_civar arr_every3 = new Array(); 5674514f5e3Sopenharmony_cifor (let i = 0; i < 10; i++) { 5684514f5e3Sopenharmony_ci if (i == 2) { 5694514f5e3Sopenharmony_ci continue; 5704514f5e3Sopenharmony_ci } 5714514f5e3Sopenharmony_ci arr_every3[i] = i; 5724514f5e3Sopenharmony_ci} 5734514f5e3Sopenharmony_civar arr_every4 = new Array(); 5744514f5e3Sopenharmony_cifor (let i = 0; i < 10; i++) arr_every4[i] = i; 5754514f5e3Sopenharmony_civar result_every1 = arr_every1.every(testEvery); 5764514f5e3Sopenharmony_ciprint(result_every1); 5774514f5e3Sopenharmony_civar result_every2 = arr_every2.every(testEvery); 5784514f5e3Sopenharmony_ciprint(result_every2); 5794514f5e3Sopenharmony_civar result_every3 = arr_every3.every(testEvery); 5804514f5e3Sopenharmony_ciprint(result_every3); 5814514f5e3Sopenharmony_civar result_every4 = arr_every4.every(testEvery4); 5824514f5e3Sopenharmony_ciprint(result_every4); 5834514f5e3Sopenharmony_ci 5844514f5e3Sopenharmony_ci// Test case for reduceRight() 5854514f5e3Sopenharmony_civar arr_reduceRight1 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; 5864514f5e3Sopenharmony_civar arr_reduceRight2 = new Array(); 5874514f5e3Sopenharmony_ci 5884514f5e3Sopenharmony_cifunction testReduceRight(accumulator, element, index, array) { 5894514f5e3Sopenharmony_ci if (index == 0) { 5904514f5e3Sopenharmony_ci array.length = 6; 5914514f5e3Sopenharmony_ci } 5924514f5e3Sopenharmony_ci return accumulator + element; 5934514f5e3Sopenharmony_ci} 5944514f5e3Sopenharmony_ci 5954514f5e3Sopenharmony_cifunction testReduceRight4(accumulator, element, index, array) { 5964514f5e3Sopenharmony_ci array.pop(); 5974514f5e3Sopenharmony_ci array.pop(); 5984514f5e3Sopenharmony_ci return accumulator + element; 5994514f5e3Sopenharmony_ci} 6004514f5e3Sopenharmony_ci 6014514f5e3Sopenharmony_cifor (let i = 0; i < 10; i++) arr_reduceRight2[i] = i; 6024514f5e3Sopenharmony_civar arr_reduceRight3 = new Array(); 6034514f5e3Sopenharmony_cifor (let i = 0; i < 10; i++) { 6044514f5e3Sopenharmony_ci if (i < 9) { 6054514f5e3Sopenharmony_ci continue; 6064514f5e3Sopenharmony_ci } 6074514f5e3Sopenharmony_ci arr_reduceRight3[i] = i; 6084514f5e3Sopenharmony_ci} 6094514f5e3Sopenharmony_civar arr_reduceRight4 = new Array(); 6104514f5e3Sopenharmony_cifor (let i = 0; i < 10; i++) arr_reduceRight4[i] = i; 6114514f5e3Sopenharmony_civar result_reduceRight1 = arr_reduceRight1.reduceRight(testReduceRight, 100); 6124514f5e3Sopenharmony_ciprint(result_reduceRight1); 6134514f5e3Sopenharmony_civar result_reduceRight2 = arr_reduceRight2.reduceRight(testReduceRight, 100); 6144514f5e3Sopenharmony_ciprint(result_reduceRight2); 6154514f5e3Sopenharmony_civar result_reduceRight3 = arr_reduceRight3.reduceRight(testReduceRight, 100); 6164514f5e3Sopenharmony_ciprint(result_reduceRight3); 6174514f5e3Sopenharmony_civar result_reduceRight4 = arr_reduceRight4.reduceRight(testReduceRight4, 100); 6184514f5e3Sopenharmony_ciprint(result_reduceRight4); 6194514f5e3Sopenharmony_ci 6204514f5e3Sopenharmony_ci// Test case for some() 6214514f5e3Sopenharmony_civar arr_some1 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; 6224514f5e3Sopenharmony_civar arr_some2 = new Array(); 6234514f5e3Sopenharmony_ci 6244514f5e3Sopenharmony_cifunction testSome(element, index, array) { 6254514f5e3Sopenharmony_ci if (index == 0) { 6264514f5e3Sopenharmony_ci array.length = 6; 6274514f5e3Sopenharmony_ci } 6284514f5e3Sopenharmony_ci return element > 8; 6294514f5e3Sopenharmony_ci} 6304514f5e3Sopenharmony_ci 6314514f5e3Sopenharmony_cifor (let i = 0; i < 10; i++) arr_some2[i] = i; 6324514f5e3Sopenharmony_civar arr_some3 = new Array(); 6334514f5e3Sopenharmony_cifor (let i = 0; i < 10; i++) { 6344514f5e3Sopenharmony_ci if (i < 9) { 6354514f5e3Sopenharmony_ci continue; 6364514f5e3Sopenharmony_ci } 6374514f5e3Sopenharmony_ci arr_some3[i] = i; 6384514f5e3Sopenharmony_ci} 6394514f5e3Sopenharmony_civar result_some1 = arr_some1.some(testSome); 6404514f5e3Sopenharmony_ciprint(result_some1); 6414514f5e3Sopenharmony_civar result_some2 = arr_some2.some(testSome); 6424514f5e3Sopenharmony_ciprint(result_some2); 6434514f5e3Sopenharmony_civar result_some3 = arr_some3.some(testSome); 6444514f5e3Sopenharmony_ciprint(result_some3); 6454514f5e3Sopenharmony_ci 6464514f5e3Sopenharmony_ci// Test case for unshift() 6474514f5e3Sopenharmony_civar arr_unshift1 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; 6484514f5e3Sopenharmony_civar arr_unshift2 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; 6494514f5e3Sopenharmony_ci 6504514f5e3Sopenharmony_civar result_unshift1 = arr_unshift1.unshift(1, 2, 3, 4, 5); 6514514f5e3Sopenharmony_ciprint(result_unshift1); 6524514f5e3Sopenharmony_civar result_unshift2 = arr_unshift2.unshift(1, 2, 3); 6534514f5e3Sopenharmony_ciprint(result_unshift2); 6544514f5e3Sopenharmony_ci 6554514f5e3Sopenharmony_ciclass C3 { 6564514f5e3Sopenharmony_ci constructor(a5) { 6574514f5e3Sopenharmony_ci try { 6584514f5e3Sopenharmony_ci a5(this, this, ..."895053461", ..."p"); 6594514f5e3Sopenharmony_ci } catch (e) { 6604514f5e3Sopenharmony_ci } 6614514f5e3Sopenharmony_ci } 6624514f5e3Sopenharmony_ci 6634514f5e3Sopenharmony_ci a; 6644514f5e3Sopenharmony_ci 6654514f5e3Sopenharmony_ci valueOf(a9) { 6664514f5e3Sopenharmony_ci const v10 = a9?.[this]; 6674514f5e3Sopenharmony_ci -718821.501160539 !== a9; 6684514f5e3Sopenharmony_ci const t6 = "895053461"; 6694514f5e3Sopenharmony_ci t6[a9] = "895053461"; 6704514f5e3Sopenharmony_ci return v10; 6714514f5e3Sopenharmony_ci } 6724514f5e3Sopenharmony_ci} 6734514f5e3Sopenharmony_ci 6744514f5e3Sopenharmony_ciconst v12 = new C3("p"); 6754514f5e3Sopenharmony_cinew C3(v12); 6764514f5e3Sopenharmony_cinew C3(C3); 6774514f5e3Sopenharmony_ciprint(new C3(C3)); 6784514f5e3Sopenharmony_ci 6794514f5e3Sopenharmony_ci// Test case for toSorted() 6804514f5e3Sopenharmony_civar arr_toSorted1 = ["Mar", "Jan", "Feb", "Dec"]; 6814514f5e3Sopenharmony_civar arr_toSorted2 = new Array(); 6824514f5e3Sopenharmony_ciarr_toSorted2[0] = "Mar"; 6834514f5e3Sopenharmony_ciarr_toSorted2[1] = "Jan"; 6844514f5e3Sopenharmony_ciarr_toSorted2[2] = "Feb"; 6854514f5e3Sopenharmony_ciarr_toSorted2[3] = "Dec"; 6864514f5e3Sopenharmony_civar result_toSorted1 = arr_toSorted1.toSorted(); 6874514f5e3Sopenharmony_ciprint(result_toSorted1); 6884514f5e3Sopenharmony_civar result_toSorted2 = arr_toSorted2.toSorted(); 6894514f5e3Sopenharmony_ciprint(result_toSorted2); 6904514f5e3Sopenharmony_ci 6914514f5e3Sopenharmony_ciconst v0 = [0, 1]; 6924514f5e3Sopenharmony_ciconst mapEd = v0.map(() => { 6934514f5e3Sopenharmony_ci v0["pop"](); 6944514f5e3Sopenharmony_ci}); 6954514f5e3Sopenharmony_ciprint(new Uint16Array(v0).length); 6964514f5e3Sopenharmony_ci 6974514f5e3Sopenharmony_citry { 6984514f5e3Sopenharmony_ci const v2 = new ArrayBuffer(103); 6994514f5e3Sopenharmony_ci 7004514f5e3Sopenharmony_ci function F3(a5, a6) { 7014514f5e3Sopenharmony_ci if (!new.target) { 7024514f5e3Sopenharmony_ci throw 'must be called with new'; 7034514f5e3Sopenharmony_ci } 7044514f5e3Sopenharmony_ci 7054514f5e3Sopenharmony_ci function f7(a8, a9, a10) { 7064514f5e3Sopenharmony_ci return v2; 7074514f5e3Sopenharmony_ci } 7084514f5e3Sopenharmony_ci 7094514f5e3Sopenharmony_ci const v13 = new BigUint64Array(35); 7104514f5e3Sopenharmony_ci const o14 = { 7114514f5e3Sopenharmony_ci ...v13, 7124514f5e3Sopenharmony_ci }; 7134514f5e3Sopenharmony_ci Object.defineProperty(o14, 4, { set: f7 }); 7144514f5e3Sopenharmony_ci } 7154514f5e3Sopenharmony_ci 7164514f5e3Sopenharmony_ci new F3(); 7174514f5e3Sopenharmony_ci new F3(); 7184514f5e3Sopenharmony_ci v2(); 7194514f5e3Sopenharmony_ci} catch (err) { 7204514f5e3Sopenharmony_ci print(err.name); 7214514f5e3Sopenharmony_ci} 7224514f5e3Sopenharmony_ci 7234514f5e3Sopenharmony_citry { 7244514f5e3Sopenharmony_ci const v3 = new ArrayBuffer(45); 7254514f5e3Sopenharmony_ci const v0 = new Boolean; 7264514f5e3Sopenharmony_ci 7274514f5e3Sopenharmony_ci function F4(a6, a7) { 7284514f5e3Sopenharmony_ci if (!new.target) { 7294514f5e3Sopenharmony_ci throw 'must be called with new'; 7304514f5e3Sopenharmony_ci } 7314514f5e3Sopenharmony_ci 7324514f5e3Sopenharmony_ci function f8(a9, a10, a11) { 7334514f5e3Sopenharmony_ci return F4; 7344514f5e3Sopenharmony_ci } 7354514f5e3Sopenharmony_ci 7364514f5e3Sopenharmony_ci const v14 = new BigUint64Array(15); 7374514f5e3Sopenharmony_ci const o20 = { 7384514f5e3Sopenharmony_ci [v0](a16, a17, a18, a19) { 7394514f5e3Sopenharmony_ci return a6; 7404514f5e3Sopenharmony_ci }, 7414514f5e3Sopenharmony_ci ...v14, 7424514f5e3Sopenharmony_ci }; 7434514f5e3Sopenharmony_ci Object.defineProperty(o20, 4, { set: f8 }); 7444514f5e3Sopenharmony_ci } 7454514f5e3Sopenharmony_ci 7464514f5e3Sopenharmony_ci new F4(v0, 101); 7474514f5e3Sopenharmony_ci new F4(); 7484514f5e3Sopenharmony_ci v3.transfer(); 7494514f5e3Sopenharmony_ci} catch (err) { 7504514f5e3Sopenharmony_ci print(err.name); 7514514f5e3Sopenharmony_ci} 7524514f5e3Sopenharmony_ci 7534514f5e3Sopenharmony_citry { 7544514f5e3Sopenharmony_ci 7554514f5e3Sopenharmony_ci function F6(a8, a9, a10) { 7564514f5e3Sopenharmony_ci if (!new.target) { 7574514f5e3Sopenharmony_ci throw 'must be called with new'; 7584514f5e3Sopenharmony_ci } 7594514f5e3Sopenharmony_ci const v14 = new Date(-10, 16); 7604514f5e3Sopenharmony_ci v14.toDateString(); 7614514f5e3Sopenharmony_ci } 7624514f5e3Sopenharmony_ci 7634514f5e3Sopenharmony_ci const v16 = new F6(11); 7644514f5e3Sopenharmony_ci new F6(2064); 7654514f5e3Sopenharmony_ci 7664514f5e3Sopenharmony_ci function f18() { 7674514f5e3Sopenharmony_ci return v16; 7684514f5e3Sopenharmony_ci } 7694514f5e3Sopenharmony_ci 7704514f5e3Sopenharmony_ci new BigUint64Array(); 7714514f5e3Sopenharmony_ci const v23 = [-42, 4, 4]; 7724514f5e3Sopenharmony_ci const o24 = {}; 7734514f5e3Sopenharmony_ci const v25 = [5.0, -5.12, 1e-15, -0.05, 5.0, 2.22e-38, -10.0, 10.0, 5.0, -5.0]; 7744514f5e3Sopenharmony_ci 7754514f5e3Sopenharmony_ci function f26() { 7764514f5e3Sopenharmony_ci return v25; 7774514f5e3Sopenharmony_ci } 7784514f5e3Sopenharmony_ci 7794514f5e3Sopenharmony_ci class C28 extends Date { 7804514f5e3Sopenharmony_ci constructor(a30, a31) { 7814514f5e3Sopenharmony_ci super(); 7824514f5e3Sopenharmony_ci } 7834514f5e3Sopenharmony_ci } 7844514f5e3Sopenharmony_ci 7854514f5e3Sopenharmony_ci new Int8Array(); 7864514f5e3Sopenharmony_ci new Int8Array(); 7874514f5e3Sopenharmony_ci v23.filter(Array); 7884514f5e3Sopenharmony_ci new ArrayBuffer(26); 7894514f5e3Sopenharmony_ci const v44 = new Uint8Array(); 7904514f5e3Sopenharmony_ci v44.toString(); 7914514f5e3Sopenharmony_ci const o46 = {}; 7924514f5e3Sopenharmony_ci for (let i49 = -51, i50 = 10; i49 < i50; i50--) { 7934514f5e3Sopenharmony_ci o46[i50] >>= i50; 7944514f5e3Sopenharmony_ci } 7954514f5e3Sopenharmony_ci /c/iusg; 7964514f5e3Sopenharmony_ci const v58 = new Int16Array(); 7974514f5e3Sopenharmony_ci v58.forEach(); 7984514f5e3Sopenharmony_ci} catch (err) { 7994514f5e3Sopenharmony_ci print(err.name); 8004514f5e3Sopenharmony_ci} 8014514f5e3Sopenharmony_ci 8024514f5e3Sopenharmony_citry { 8034514f5e3Sopenharmony_ci const v3 = new ArrayBuffer(19); 8044514f5e3Sopenharmony_ci 8054514f5e3Sopenharmony_ci function F4(a6, a7) { 8064514f5e3Sopenharmony_ci if (!new.target) { 8074514f5e3Sopenharmony_ci throw 'must be called with new'; 8084514f5e3Sopenharmony_ci } 8094514f5e3Sopenharmony_ci const v10 = new BigUint64Array(34); 8104514f5e3Sopenharmony_ci const o11 = { 8114514f5e3Sopenharmony_ci ...v10, 8124514f5e3Sopenharmony_ci }; 8134514f5e3Sopenharmony_ci Object.defineProperty(o11, 4, { set: a6 }); 8144514f5e3Sopenharmony_ci } 8154514f5e3Sopenharmony_ci 8164514f5e3Sopenharmony_ci const v12 = new F4(); 8174514f5e3Sopenharmony_ci new F4(v12, v3); 8184514f5e3Sopenharmony_ci} catch (err) { 8194514f5e3Sopenharmony_ci print(err.name); 8204514f5e3Sopenharmony_ci} 8214514f5e3Sopenharmony_ci 8224514f5e3Sopenharmony_citry { 8234514f5e3Sopenharmony_ci const v3 = new ArrayBuffer(10); 8244514f5e3Sopenharmony_ci 8254514f5e3Sopenharmony_ci function F4(a6, a7) { 8264514f5e3Sopenharmony_ci if (!new.target) { 8274514f5e3Sopenharmony_ci throw 'must be called with new'; 8284514f5e3Sopenharmony_ci } 8294514f5e3Sopenharmony_ci 8304514f5e3Sopenharmony_ci function f8(a9, a10, a11) { 8314514f5e3Sopenharmony_ci return a11; 8324514f5e3Sopenharmony_ci } 8334514f5e3Sopenharmony_ci 8344514f5e3Sopenharmony_ci const v14 = new BigUint64Array(34); 8354514f5e3Sopenharmony_ci const o15 = { 8364514f5e3Sopenharmony_ci ...v14, 8374514f5e3Sopenharmony_ci }; 8384514f5e3Sopenharmony_ci Object.defineProperty(o15, 4, { set: f8 }); 8394514f5e3Sopenharmony_ci } 8404514f5e3Sopenharmony_ci 8414514f5e3Sopenharmony_ci const v16 = new F4(); 8424514f5e3Sopenharmony_ci new F4(v16, v3); 8434514f5e3Sopenharmony_ci Int32Array(); 8444514f5e3Sopenharmony_ci} catch (err) { 8454514f5e3Sopenharmony_ci print(err.name); 8464514f5e3Sopenharmony_ci} 8474514f5e3Sopenharmony_ci 8484514f5e3Sopenharmony_citry { 8494514f5e3Sopenharmony_ci const v2 = new ArrayBuffer(10); 8504514f5e3Sopenharmony_ci 8514514f5e3Sopenharmony_ci function F3(a5, a6) { 8524514f5e3Sopenharmony_ci if (!new.target) { 8534514f5e3Sopenharmony_ci throw 'must be called with new'; 8544514f5e3Sopenharmony_ci } 8554514f5e3Sopenharmony_ci 8564514f5e3Sopenharmony_ci function f7(a8, a9, a10) { 8574514f5e3Sopenharmony_ci return a9; 8584514f5e3Sopenharmony_ci } 8594514f5e3Sopenharmony_ci 8604514f5e3Sopenharmony_ci const v13 = new BigUint64Array(35); 8614514f5e3Sopenharmony_ci const o14 = { 8624514f5e3Sopenharmony_ci ...v13, 8634514f5e3Sopenharmony_ci }; 8644514f5e3Sopenharmony_ci Object.defineProperty(o14, 4, { set: f7 }); 8654514f5e3Sopenharmony_ci } 8664514f5e3Sopenharmony_ci 8674514f5e3Sopenharmony_ci new F3(ArrayBuffer, v2); 8684514f5e3Sopenharmony_ci new F3(10, F3); 8694514f5e3Sopenharmony_ci v2.transfer(); 8704514f5e3Sopenharmony_ci} catch (err) { 8714514f5e3Sopenharmony_ci print(err.name); 8724514f5e3Sopenharmony_ci} 8734514f5e3Sopenharmony_ci 8744514f5e3Sopenharmony_citry { 8754514f5e3Sopenharmony_ci const v1 = new Uint16Array(); 8764514f5e3Sopenharmony_ci for (let i4 = 0, i5 = 10; i5; i5--) { 8774514f5e3Sopenharmony_ci } 8784514f5e3Sopenharmony_ci undefined instanceof v1.values(); 8794514f5e3Sopenharmony_ci} catch (error) { 8804514f5e3Sopenharmony_ci print(error.name); 8814514f5e3Sopenharmony_ci} 8824514f5e3Sopenharmony_ci 8834514f5e3Sopenharmony_ci/* 8844514f5e3Sopenharmony_ci * @tc.name:ArrayConstructor 8854514f5e3Sopenharmony_ci * @tc.desc:test Array 8864514f5e3Sopenharmony_ci * @tc.type: FUNC 8874514f5e3Sopenharmony_ci */ 8884514f5e3Sopenharmony_ciconst originalArrays = [ 8894514f5e3Sopenharmony_ci [1, 2, 3], 8904514f5e3Sopenharmony_ci ["apple", "banana", "orange"], 8914514f5e3Sopenharmony_ci [true, false, true], 8924514f5e3Sopenharmony_ci [{ name: "John" }, { name: "Doe" }], 8934514f5e3Sopenharmony_ci [NaN, NaN, NaN], 8944514f5e3Sopenharmony_ci [Infinity, -Infinity], 8954514f5e3Sopenharmony_ci [RegExp("pattern1"), RegExp("pattern2")], 8964514f5e3Sopenharmony_ci [new Map(), new Map()], 8974514f5e3Sopenharmony_ci [new Set(), new Set()], 8984514f5e3Sopenharmony_ci [Array.from([1, 2, 3]), Array.from([4, 5, 6])], 8994514f5e3Sopenharmony_ci ["ark_unicodeValue ", "ark_unicodeValue "], 9004514f5e3Sopenharmony_ci]; 9014514f5e3Sopenharmony_ci 9024514f5e3Sopenharmony_cifor (let i = 0; i < originalArrays.length; i++) { 9034514f5e3Sopenharmony_ci print(originalArrays[i]); 9044514f5e3Sopenharmony_ci} 9054514f5e3Sopenharmony_ci 9064514f5e3Sopenharmony_citry { 9074514f5e3Sopenharmony_ci const arr1 = [1, 2, 3]; 9084514f5e3Sopenharmony_ci print(arr1[10]); 9094514f5e3Sopenharmony_ci print("Exception usage, but does not throw an error"); 9104514f5e3Sopenharmony_ci} catch (error) { 9114514f5e3Sopenharmony_ci print("Caught an error: " + error); 9124514f5e3Sopenharmony_ci} 9134514f5e3Sopenharmony_ci 9144514f5e3Sopenharmony_citry { 9154514f5e3Sopenharmony_ci} catch (error) { 9164514f5e3Sopenharmony_ci print("Caught an error: ", error); 9174514f5e3Sopenharmony_ci} 9184514f5e3Sopenharmony_ci 9194514f5e3Sopenharmony_citry { 9204514f5e3Sopenharmony_ci const arr2 = new Array(-1); 9214514f5e3Sopenharmony_ci} catch (error) { 9224514f5e3Sopenharmony_ci print("Caught an error: ", error); 9234514f5e3Sopenharmony_ci} 9244514f5e3Sopenharmony_ci 9254514f5e3Sopenharmony_ci/* 9264514f5e3Sopenharmony_ci * @tc.name:from 9274514f5e3Sopenharmony_ci * @tc.desc:test Array 9284514f5e3Sopenharmony_ci * @tc.type: FUNC 9294514f5e3Sopenharmony_ci */ 9304514f5e3Sopenharmony_ciconst newArray = Array.from(originalArrays); 9314514f5e3Sopenharmony_cinewArray.forEach(array => { 9324514f5e3Sopenharmony_ci print(array); 9334514f5e3Sopenharmony_ci}); 9344514f5e3Sopenharmony_ci 9354514f5e3Sopenharmony_citry { 9364514f5e3Sopenharmony_ci Array.from([1, 2, 3], "not a function"); 9374514f5e3Sopenharmony_ci} catch (error) { 9384514f5e3Sopenharmony_ci print("Caught an error: ", error); 9394514f5e3Sopenharmony_ci} 9404514f5e3Sopenharmony_ci 9414514f5e3Sopenharmony_citry { 9424514f5e3Sopenharmony_ci Array.from([1, 2, 3], () => { throw new Error("Something went wrong"); }); 9434514f5e3Sopenharmony_ci} catch (error) { 9444514f5e3Sopenharmony_ci print("Caught an error: ", error); 9454514f5e3Sopenharmony_ci} 9464514f5e3Sopenharmony_ci 9474514f5e3Sopenharmony_citry { 9484514f5e3Sopenharmony_ci Array.from(123); 9494514f5e3Sopenharmony_ci Array.from({}); 9504514f5e3Sopenharmony_ci Array.from([1, 2, 3], () => {}, 123); 9514514f5e3Sopenharmony_ci print("Exception usage, but does not throw an error"); 9524514f5e3Sopenharmony_ci} catch (error) { 9534514f5e3Sopenharmony_ci print("Caught an error: " + error); 9544514f5e3Sopenharmony_ci} 9554514f5e3Sopenharmony_ci 9564514f5e3Sopenharmony_ci/* 9574514f5e3Sopenharmony_ci * @tc.name:isArray 9584514f5e3Sopenharmony_ci * @tc.desc:test Array 9594514f5e3Sopenharmony_ci * @tc.type: FUNC 9604514f5e3Sopenharmony_ci */ 9614514f5e3Sopenharmony_cioriginalArrays.forEach((array, index) => { 9624514f5e3Sopenharmony_ci print(Array.isArray(array)); 9634514f5e3Sopenharmony_ci}); 9644514f5e3Sopenharmony_ci 9654514f5e3Sopenharmony_citry { 9664514f5e3Sopenharmony_ci print(Array.isArray()); 9674514f5e3Sopenharmony_ci print(Array.isArray(123)); 9684514f5e3Sopenharmony_ci print(Array.isArray("not an array")); 9694514f5e3Sopenharmony_ci print(Array.isArray(null)); 9704514f5e3Sopenharmony_ci print(Array.isArray(undefined)); 9714514f5e3Sopenharmony_ci} catch (error) { 9724514f5e3Sopenharmony_ci print("Caught an error: ", error); 9734514f5e3Sopenharmony_ci} 9744514f5e3Sopenharmony_ci 9754514f5e3Sopenharmony_ci/* 9764514f5e3Sopenharmony_ci * @tc.name:Of 9774514f5e3Sopenharmony_ci * @tc.desc:test Array 9784514f5e3Sopenharmony_ci * @tc.type: FUNC 9794514f5e3Sopenharmony_ci */ 9804514f5e3Sopenharmony_ciconst ArrayOf = Array.of(...originalArrays); 9814514f5e3Sopenharmony_ciprint(ArrayOf[1]); 9824514f5e3Sopenharmony_ci 9834514f5e3Sopenharmony_citry { 9844514f5e3Sopenharmony_ci const arr1 = Array.of(undefined); 9854514f5e3Sopenharmony_ci const arr2 = Array.of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); 9864514f5e3Sopenharmony_ci print(arr1); 9874514f5e3Sopenharmony_ci print(arr2); 9884514f5e3Sopenharmony_ci} catch (error) { 9894514f5e3Sopenharmony_ci print("Caught an error: ", error); 9904514f5e3Sopenharmony_ci} 9914514f5e3Sopenharmony_ci 9924514f5e3Sopenharmony_ci/* 9934514f5e3Sopenharmony_ci * @tc.name:At 9944514f5e3Sopenharmony_ci * @tc.desc:test Array 9954514f5e3Sopenharmony_ci * @tc.type: FUNC 9964514f5e3Sopenharmony_ci */ 9974514f5e3Sopenharmony_ciprint(originalArrays.at(1)); 9984514f5e3Sopenharmony_ciprint(originalArrays.at(3)); 9994514f5e3Sopenharmony_ciprint(originalArrays.at(-1)); 10004514f5e3Sopenharmony_ciprint(originalArrays.at(-2)); 10014514f5e3Sopenharmony_ci 10024514f5e3Sopenharmony_citry { 10034514f5e3Sopenharmony_ci print(originalArrays.at()); 10044514f5e3Sopenharmony_ci print(originalArrays.at(100)); 10054514f5e3Sopenharmony_ci print(originalArrays.at(null)); 10064514f5e3Sopenharmony_ci print(originalArrays.at(undefined)); 10074514f5e3Sopenharmony_ci print(originalArrays.at(new Map())); 10084514f5e3Sopenharmony_ci} catch (error) { 10094514f5e3Sopenharmony_ci print("Caught an error: ", error); 10104514f5e3Sopenharmony_ci} 10114514f5e3Sopenharmony_ci 10124514f5e3Sopenharmony_ci/* 10134514f5e3Sopenharmony_ci * @tc.name:concat 10144514f5e3Sopenharmony_ci * @tc.desc:test Array 10154514f5e3Sopenharmony_ci * @tc.type: FUNC 10164514f5e3Sopenharmony_ci */ 10174514f5e3Sopenharmony_ciconst array1 = [1, "two", true]; 10184514f5e3Sopenharmony_ciconst array2 = [null, undefined, { key: "value" }]; 10194514f5e3Sopenharmony_ciconst array3 = []; 10204514f5e3Sopenharmony_ci 10214514f5e3Sopenharmony_ciconst concatenatedArray = array1.concat(array2, array3); 10224514f5e3Sopenharmony_ciprint("Concatenated Array:", concatenatedArray); 10234514f5e3Sopenharmony_ci 10244514f5e3Sopenharmony_ciconst nestedArray = [[1, 2], ["a", "b"], [true, false]]; 10254514f5e3Sopenharmony_ciconst nestedConcatenatedArray = array1.concat(nestedArray, array2); 10264514f5e3Sopenharmony_ciprint("Nested Concatenated Array:", nestedConcatenatedArray); 10274514f5e3Sopenharmony_ci 10284514f5e3Sopenharmony_ciconst mixedConcatenatedArray = array1.concat(4, "five", { prop: "value" }); 10294514f5e3Sopenharmony_ciprint("Mixed Concatenated Array:", mixedConcatenatedArray); 10304514f5e3Sopenharmony_ci 10314514f5e3Sopenharmony_ciconst spreadConcatenatedArray = [...array1, ...array2, ...array3]; 10324514f5e3Sopenharmony_ciprint("Spread Concatenated Array:", spreadConcatenatedArray); 10334514f5e3Sopenharmony_ci 10344514f5e3Sopenharmony_ci/* 10354514f5e3Sopenharmony_ci * @tc.name:CopyWithin,Entries 10364514f5e3Sopenharmony_ci * @tc.desc:test Array 10374514f5e3Sopenharmony_ci * @tc.type: FUNC 10384514f5e3Sopenharmony_ci */ 10394514f5e3Sopenharmony_ciconst copiedArray1 = originalArrays[0].slice().copyWithin(0, 2); 10404514f5e3Sopenharmony_ciconst copiedArray2 = originalArrays[1].slice().copyWithin(1, 0, 2); 10414514f5e3Sopenharmony_ciconst copiedArray3 = originalArrays[2].slice().copyWithin(1, -2); 10424514f5e3Sopenharmony_ciconst copiedArray4 = originalArrays[3].slice().copyWithin(-1); 10434514f5e3Sopenharmony_ciconst copiedArray5 = originalArrays[4].slice().copyWithin(0); 10444514f5e3Sopenharmony_ci 10454514f5e3Sopenharmony_ciprint("Original Arrays:", originalArrays); 10464514f5e3Sopenharmony_ciprint("Copied Array 1:", copiedArray1); 10474514f5e3Sopenharmony_ciprint("Copied Array 2:", copiedArray2); 10484514f5e3Sopenharmony_ciprint("Copied Array 3:", copiedArray3); 10494514f5e3Sopenharmony_ciprint("Copied Array 4:", copiedArray4); 10504514f5e3Sopenharmony_ciprint("Copied Array 5:", copiedArray5); 10514514f5e3Sopenharmony_ci 10524514f5e3Sopenharmony_cifor (const [index, value] of originalArrays.entries()) { 10534514f5e3Sopenharmony_ci print(`Index: ${index}`); 10544514f5e3Sopenharmony_ci print(`Value: ${value}`); 10554514f5e3Sopenharmony_ci} 10564514f5e3Sopenharmony_ci 10574514f5e3Sopenharmony_ci/* 10584514f5e3Sopenharmony_ci * @tc.name:Every 10594514f5e3Sopenharmony_ci * @tc.desc:test Array 10604514f5e3Sopenharmony_ci * @tc.type: FUNC 10614514f5e3Sopenharmony_ci */ 10624514f5e3Sopenharmony_ciconst numbers1 = [2, 4, 6, 8, 10]; 10634514f5e3Sopenharmony_ciconst allEven = numbers1.every(num => num % 2 === 0); 10644514f5e3Sopenharmony_ciprint(allEven); 10654514f5e3Sopenharmony_ci 10664514f5e3Sopenharmony_ciconst numbers2 = [1, 2, 3, 4, 5]; 10674514f5e3Sopenharmony_ciconst allEven2 = numbers2.every(num => num % 2 === 0); 10684514f5e3Sopenharmony_ciprint(allEven2); 10694514f5e3Sopenharmony_ci 10704514f5e3Sopenharmony_ciconst emptyArray1 = []; 10714514f5e3Sopenharmony_ciconst allEmpty = emptyArray1.every(num => num % 2 === 0); 10724514f5e3Sopenharmony_ciprint(allEmpty); 10734514f5e3Sopenharmony_ci 10744514f5e3Sopenharmony_ciconst emptyArray2 = []; 10754514f5e3Sopenharmony_ciconst allEmpty2 = emptyArray2.every(() => true); 10764514f5e3Sopenharmony_ciprint(allEmpty2); 10774514f5e3Sopenharmony_ci 10784514f5e3Sopenharmony_ciconst mixedArray = [2, 4, "hello", 8, 10]; 10794514f5e3Sopenharmony_ciconst allNumbers = mixedArray.every(num => typeof num === "number"); 10804514f5e3Sopenharmony_ciprint(allNumbers); 10814514f5e3Sopenharmony_ci 10824514f5e3Sopenharmony_ciconst emptyArray3 = []; 10834514f5e3Sopenharmony_ciconst allNonNegative = emptyArray3.every(num => num >= 0); 10844514f5e3Sopenharmony_ciprint(allNonNegative); 10854514f5e3Sopenharmony_ci 10864514f5e3Sopenharmony_citry { 10874514f5e3Sopenharmony_ci const arr = [1, 2, 3]; 10884514f5e3Sopenharmony_ci const result = arr.every("not a function"); 10894514f5e3Sopenharmony_ci} catch (error) { 10904514f5e3Sopenharmony_ci print("Caught an error: ", error); 10914514f5e3Sopenharmony_ci} 10924514f5e3Sopenharmony_ci 10934514f5e3Sopenharmony_citry { 10944514f5e3Sopenharmony_ci const arr = [1, 2, 3]; 10954514f5e3Sopenharmony_ci const result = arr.every(num => num < undefinedVariable); 10964514f5e3Sopenharmony_ci} catch (error) { 10974514f5e3Sopenharmony_ci print("Caught an error: ", error); 10984514f5e3Sopenharmony_ci} 10994514f5e3Sopenharmony_ci 11004514f5e3Sopenharmony_ci/* 11014514f5e3Sopenharmony_ci * @tc.name:Fill 11024514f5e3Sopenharmony_ci * @tc.desc:test Array 11034514f5e3Sopenharmony_ci * @tc.type: FUNC 11044514f5e3Sopenharmony_ci */ 11054514f5e3Sopenharmony_ci{ 11064514f5e3Sopenharmony_ci const array1 = [1, 2, 3, 4, 5]; 11074514f5e3Sopenharmony_ci print(array1.fill(0)); 11084514f5e3Sopenharmony_ci 11094514f5e3Sopenharmony_ci const array2 = [1, 2, 3, 4, 5]; 11104514f5e3Sopenharmony_ci print(array2.fill(0, 2)); 11114514f5e3Sopenharmony_ci 11124514f5e3Sopenharmony_ci const array3 = [1, 2, 3, 4, 5]; 11134514f5e3Sopenharmony_ci print(array3.fill(0, 1, 3)); 11144514f5e3Sopenharmony_ci 11154514f5e3Sopenharmony_ci const array4 = new Array(5); 11164514f5e3Sopenharmony_ci print(array4.fill(0)); 11174514f5e3Sopenharmony_ci 11184514f5e3Sopenharmony_ci const array5 = Array.from({ length: 5 }, (_, index) => index + 1); 11194514f5e3Sopenharmony_ci print(array5.fill(0, 2)); 11204514f5e3Sopenharmony_ci 11214514f5e3Sopenharmony_ci const array6 = Array.from({ length: 5 }, (_, index) => index + 1); 11224514f5e3Sopenharmony_ci print(array6.fill(0, 1, 3)); 11234514f5e3Sopenharmony_ci 11244514f5e3Sopenharmony_ci const array7 = Array(5).fill("hello"); 11254514f5e3Sopenharmony_ci print(array7); 11264514f5e3Sopenharmony_ci 11274514f5e3Sopenharmony_ci const array8 = [1, 2, 3]; 11284514f5e3Sopenharmony_ci print(array8.fill(0, -2)); 11294514f5e3Sopenharmony_ci 11304514f5e3Sopenharmony_ci const array9 = [1, 2, 3]; 11314514f5e3Sopenharmony_ci print(array9.fill(0, -2, -1)); 11324514f5e3Sopenharmony_ci} 11334514f5e3Sopenharmony_ci 11344514f5e3Sopenharmony_citry { 11354514f5e3Sopenharmony_ci const arr = [1, 2, 3]; 11364514f5e3Sopenharmony_ci arr.fill(0, 1.5); 11374514f5e3Sopenharmony_ci} catch (error) { 11384514f5e3Sopenharmony_ci print("Caught an error: ", error); 11394514f5e3Sopenharmony_ci} 11404514f5e3Sopenharmony_ci 11414514f5e3Sopenharmony_citry { 11424514f5e3Sopenharmony_ci const arr = [1, 2, 3]; 11434514f5e3Sopenharmony_ci arr.fill(0, NaN); 11444514f5e3Sopenharmony_ci} catch (error) { 11454514f5e3Sopenharmony_ci print("Caught an error: ", error); 11464514f5e3Sopenharmony_ci} 11474514f5e3Sopenharmony_ci 11484514f5e3Sopenharmony_ci/* 11494514f5e3Sopenharmony_ci * @tc.name:Filter 11504514f5e3Sopenharmony_ci * @tc.desc:test Array 11514514f5e3Sopenharmony_ci * @tc.type: FUNC 11524514f5e3Sopenharmony_ci */ 11534514f5e3Sopenharmony_ci{ 11544514f5e3Sopenharmony_ci const numbers = [1, 2, 3, 4, 5]; 11554514f5e3Sopenharmony_ci 11564514f5e3Sopenharmony_ci const evenNumbers = numbers.filter(num => num % 2 === 0); 11574514f5e3Sopenharmony_ci print(evenNumbers); 11584514f5e3Sopenharmony_ci 11594514f5e3Sopenharmony_ci const greaterThanTwo = numbers.filter(num => num > 2); 11604514f5e3Sopenharmony_ci print(greaterThanTwo); 11614514f5e3Sopenharmony_ci 11624514f5e3Sopenharmony_ci const lessThanTen = numbers.filter(num => num < 10); 11634514f5e3Sopenharmony_ci print(lessThanTen); 11644514f5e3Sopenharmony_ci 11654514f5e3Sopenharmony_ci const divisibleByThree = numbers.filter(num => num % 3 === 0); 11664514f5e3Sopenharmony_ci print(divisibleByThree); 11674514f5e3Sopenharmony_ci 11684514f5e3Sopenharmony_ci const words = ["apple", "banana", "pear", "orange"]; 11694514f5e3Sopenharmony_ci const longWords = words.filter(word => word.length >= 5); 11704514f5e3Sopenharmony_ci print(longWords); 11714514f5e3Sopenharmony_ci 11724514f5e3Sopenharmony_ci const persons = [ 11734514f5e3Sopenharmony_ci { name: "Alice", age: 25 }, 11744514f5e3Sopenharmony_ci { name: "Bob", age: 17 }, 11754514f5e3Sopenharmony_ci { name: "Charlie", age: 30 } 11764514f5e3Sopenharmony_ci ]; 11774514f5e3Sopenharmony_ci const adults = persons.filter(person => person.age > 18); 11784514f5e3Sopenharmony_ci print(adults); 11794514f5e3Sopenharmony_ci} 11804514f5e3Sopenharmony_ci 11814514f5e3Sopenharmony_citry { 11824514f5e3Sopenharmony_ci const arr = [1, 2, 3]; 11834514f5e3Sopenharmony_ci const result = arr.filter("not a function"); 11844514f5e3Sopenharmony_ci} catch (error) { 11854514f5e3Sopenharmony_ci print("Caught an error: ", error); 11864514f5e3Sopenharmony_ci} 11874514f5e3Sopenharmony_ci 11884514f5e3Sopenharmony_citry { 11894514f5e3Sopenharmony_ci const obj = { a: 1, b: 2 }; 11904514f5e3Sopenharmony_ci const result = obj.filter(() => true); 11914514f5e3Sopenharmony_ci} catch (error) { 11924514f5e3Sopenharmony_ci print("Caught an error: ", error); 11934514f5e3Sopenharmony_ci} 11944514f5e3Sopenharmony_ci 11954514f5e3Sopenharmony_ci/* 11964514f5e3Sopenharmony_ci * @tc.name:Find 11974514f5e3Sopenharmony_ci * @tc.desc:test Array 11984514f5e3Sopenharmony_ci * @tc.type: FUNC 11994514f5e3Sopenharmony_ci */ 12004514f5e3Sopenharmony_ci{ 12014514f5e3Sopenharmony_ci const array = [6, 7, 8, 9, 10, NaN, undefined, null, "", false, {name: "John"}, [1, 2, 3]]; 12024514f5e3Sopenharmony_ci print(array.find(item => item === 5)); 12034514f5e3Sopenharmony_ci print(array.find(item => item === 11)); 12044514f5e3Sopenharmony_ci print(array.find(item => item > 5)); 12054514f5e3Sopenharmony_ci print(array.find(item => item < 0)); 12064514f5e3Sopenharmony_ci print(array.find(item => typeof item === 'string')); 12074514f5e3Sopenharmony_ci print(array.find(item => typeof item === 'object')); 12084514f5e3Sopenharmony_ci print(array.find(item => Array.isArray(item))); 12094514f5e3Sopenharmony_ci print(array.find(item => item)); 12104514f5e3Sopenharmony_ci print(array.find(item => item === null)); 12114514f5e3Sopenharmony_ci print(array.find(item => item === undefined)); 12124514f5e3Sopenharmony_ci print(array.find(item => isNaN(item))); 12134514f5e3Sopenharmony_ci print(array.find(item => item === false)); 12144514f5e3Sopenharmony_ci} 12154514f5e3Sopenharmony_ci 12164514f5e3Sopenharmony_citry { 12174514f5e3Sopenharmony_ci const array = [1, 2, 3, 4, 5]; 12184514f5e3Sopenharmony_ci print(array.find()); 12194514f5e3Sopenharmony_ci} catch (error) { 12204514f5e3Sopenharmony_ci print("Caught an error: ", error); 12214514f5e3Sopenharmony_ci} 12224514f5e3Sopenharmony_ci 12234514f5e3Sopenharmony_citry { 12244514f5e3Sopenharmony_ci const array = [1, 2, 3, 4, 5]; 12254514f5e3Sopenharmony_ci print(array.find("not a function")); 12264514f5e3Sopenharmony_ci} catch (error) { 12274514f5e3Sopenharmony_ci print("Caught an error: ", error); 12284514f5e3Sopenharmony_ci} 12294514f5e3Sopenharmony_ci 12304514f5e3Sopenharmony_citry { 12314514f5e3Sopenharmony_ci let array = null; 12324514f5e3Sopenharmony_ci print(array.find(item => item === 1)); 12334514f5e3Sopenharmony_ci} catch (error) { 12344514f5e3Sopenharmony_ci print("Caught an error: ", error); 12354514f5e3Sopenharmony_ci} 12364514f5e3Sopenharmony_ci 12374514f5e3Sopenharmony_citry { 12384514f5e3Sopenharmony_ci array = undefined; 12394514f5e3Sopenharmony_ci print(array.find(item => item === 1)); 12404514f5e3Sopenharmony_ci} catch (error) { 12414514f5e3Sopenharmony_ci print("Caught an error: ", error); 12424514f5e3Sopenharmony_ci} 12434514f5e3Sopenharmony_ci 12444514f5e3Sopenharmony_ci/* 12454514f5e3Sopenharmony_ci * @tc.name:FindIndex 12464514f5e3Sopenharmony_ci * @tc.desc:test Array 12474514f5e3Sopenharmony_ci * @tc.type: FUNC 12484514f5e3Sopenharmony_ci */ 12494514f5e3Sopenharmony_ci{ 12504514f5e3Sopenharmony_ci const array = [6, 7, 8, 9, 10, NaN, undefined, null, "", false, {name: "John"}, [1, 2, 3]]; 12514514f5e3Sopenharmony_ci print(array.findIndex(item => item === 5)); 12524514f5e3Sopenharmony_ci print(array.findIndex(item => item === 11)); 12534514f5e3Sopenharmony_ci print(array.findIndex(item => item > 5)); 12544514f5e3Sopenharmony_ci print(array.findIndex(item => item < 0)); 12554514f5e3Sopenharmony_ci print(array.findIndex(item => typeof item === 'string')); 12564514f5e3Sopenharmony_ci print(array.findIndex(item => typeof item === 'object')); 12574514f5e3Sopenharmony_ci print(array.findIndex(item => Array.isArray(item))); 12584514f5e3Sopenharmony_ci print(array.findIndex(item => item)); 12594514f5e3Sopenharmony_ci print(array.findIndex(item => item === null)); 12604514f5e3Sopenharmony_ci print(array.findIndex(item => item === undefined)); 12614514f5e3Sopenharmony_ci print(array.findIndex(item => isNaN(item))); 12624514f5e3Sopenharmony_ci print(array.findIndex(item => item === false)); 12634514f5e3Sopenharmony_ci} 12644514f5e3Sopenharmony_ci 12654514f5e3Sopenharmony_citry { 12664514f5e3Sopenharmony_ci const array = [1, 2, 3, 4, 5]; 12674514f5e3Sopenharmony_ci print(array.findIndex()); 12684514f5e3Sopenharmony_ci} catch (error) { 12694514f5e3Sopenharmony_ci print("Caught an error: ", error); 12704514f5e3Sopenharmony_ci} 12714514f5e3Sopenharmony_ci 12724514f5e3Sopenharmony_citry { 12734514f5e3Sopenharmony_ci const array = [1, 2, 3, 4, 5]; 12744514f5e3Sopenharmony_ci print(array.findIndex("not a function")); 12754514f5e3Sopenharmony_ci} catch (error) { 12764514f5e3Sopenharmony_ci print("Caught an error: ", error); 12774514f5e3Sopenharmony_ci} 12784514f5e3Sopenharmony_ci 12794514f5e3Sopenharmony_citry { 12804514f5e3Sopenharmony_ci let array = null; 12814514f5e3Sopenharmony_ci print(array.findIndex(item => item === 1)); 12824514f5e3Sopenharmony_ci} catch (error) { 12834514f5e3Sopenharmony_ci print("Caught an error: ", error); 12844514f5e3Sopenharmony_ci} 12854514f5e3Sopenharmony_ci 12864514f5e3Sopenharmony_citry { 12874514f5e3Sopenharmony_ci array = undefined; 12884514f5e3Sopenharmony_ci print(array.findIndex(item => item === 1)); 12894514f5e3Sopenharmony_ci} catch (error) { 12904514f5e3Sopenharmony_ci print("Caught an error: ", error); 12914514f5e3Sopenharmony_ci} 12924514f5e3Sopenharmony_ci 12934514f5e3Sopenharmony_ci/* 12944514f5e3Sopenharmony_ci * @tc.name:FindLast 12954514f5e3Sopenharmony_ci * @tc.desc:test Array 12964514f5e3Sopenharmony_ci * @tc.type: FUNC 12974514f5e3Sopenharmony_ci */ 12984514f5e3Sopenharmony_ci{ 12994514f5e3Sopenharmony_ci const array = [6, 7, 8, 9, 10, NaN, undefined, null, "", false, {name: "John"}, [1, 2, 3]]; 13004514f5e3Sopenharmony_ci print(array.findLast(item => item === 5)); 13014514f5e3Sopenharmony_ci print(array.findLast(item => item === 11)); 13024514f5e3Sopenharmony_ci print(array.findLast(item => item > 5)); 13034514f5e3Sopenharmony_ci print(array.findLast(item => item < 0)); 13044514f5e3Sopenharmony_ci print(array.findLast(item => typeof item === 'string')); 13054514f5e3Sopenharmony_ci print(array.findLast(item => typeof item === 'object')); 13064514f5e3Sopenharmony_ci print(array.findLast(item => Array.isArray(item))); 13074514f5e3Sopenharmony_ci print(array.findLast(item => item)); 13084514f5e3Sopenharmony_ci print(array.findLast(item => item === null)); 13094514f5e3Sopenharmony_ci print(array.findLast(item => item === undefined)); 13104514f5e3Sopenharmony_ci print(array.findLast(item => isNaN(item))); 13114514f5e3Sopenharmony_ci print(array.findLast(item => item === false)); 13124514f5e3Sopenharmony_ci} 13134514f5e3Sopenharmony_ci 13144514f5e3Sopenharmony_citry { 13154514f5e3Sopenharmony_ci const array = [1, 2, 3, 4, 5]; 13164514f5e3Sopenharmony_ci print(array.findLast()); 13174514f5e3Sopenharmony_ci} catch (error) { 13184514f5e3Sopenharmony_ci print("Caught an error: ", error); 13194514f5e3Sopenharmony_ci} 13204514f5e3Sopenharmony_ci 13214514f5e3Sopenharmony_citry { 13224514f5e3Sopenharmony_ci const array = [1, 2, 3, 4, 5]; 13234514f5e3Sopenharmony_ci print(array.findLast("not a function")); 13244514f5e3Sopenharmony_ci} catch (error) { 13254514f5e3Sopenharmony_ci print("Caught an error: ", error); 13264514f5e3Sopenharmony_ci} 13274514f5e3Sopenharmony_ci 13284514f5e3Sopenharmony_citry { 13294514f5e3Sopenharmony_ci let array = null; 13304514f5e3Sopenharmony_ci print(array.findLast(item => item === 1)); 13314514f5e3Sopenharmony_ci} catch (error) { 13324514f5e3Sopenharmony_ci print("Caught an error: ", error); 13334514f5e3Sopenharmony_ci} 13344514f5e3Sopenharmony_ci 13354514f5e3Sopenharmony_citry { 13364514f5e3Sopenharmony_ci array = undefined; 13374514f5e3Sopenharmony_ci print(array.findLast(item => item === 1)); 13384514f5e3Sopenharmony_ci} catch (error) { 13394514f5e3Sopenharmony_ci print("Caught an error: ", error); 13404514f5e3Sopenharmony_ci} 13414514f5e3Sopenharmony_ci 13424514f5e3Sopenharmony_ci/* 13434514f5e3Sopenharmony_ci * @tc.name:FindLastIndex 13444514f5e3Sopenharmony_ci * @tc.desc:test Array 13454514f5e3Sopenharmony_ci * @tc.type: FUNC 13464514f5e3Sopenharmony_ci */ 13474514f5e3Sopenharmony_ci{ 13484514f5e3Sopenharmony_ci const array = [6, 7, 8, 9, 10, NaN, undefined, null, "", false, {name: "John"}, [1, 2, 3]]; 13494514f5e3Sopenharmony_ci print(array.findLastIndex(item => item === 5)); 13504514f5e3Sopenharmony_ci print(array.findLastIndex(item => item === 11)); 13514514f5e3Sopenharmony_ci print(array.findLastIndex(item => item > 5)); 13524514f5e3Sopenharmony_ci print(array.findLastIndex(item => item < 0)); 13534514f5e3Sopenharmony_ci print(array.findLastIndex(item => typeof item === 'string')); 13544514f5e3Sopenharmony_ci print(array.findLastIndex(item => typeof item === 'object')); 13554514f5e3Sopenharmony_ci print(array.findLastIndex(item => Array.isArray(item))); 13564514f5e3Sopenharmony_ci print(array.findLastIndex(item => item)); 13574514f5e3Sopenharmony_ci print(array.findLastIndex(item => item === null)); 13584514f5e3Sopenharmony_ci print(array.findLastIndex(item => item === undefined)); 13594514f5e3Sopenharmony_ci print(array.findLastIndex(item => isNaN(item))); 13604514f5e3Sopenharmony_ci print(array.findLastIndex(item => item === false)); 13614514f5e3Sopenharmony_ci} 13624514f5e3Sopenharmony_ci 13634514f5e3Sopenharmony_citry { 13644514f5e3Sopenharmony_ci const array = [1, 2, 3, 4, 5]; 13654514f5e3Sopenharmony_ci print(array.findLastIndex()); 13664514f5e3Sopenharmony_ci} catch (error) { 13674514f5e3Sopenharmony_ci print("Caught an error: ", error); 13684514f5e3Sopenharmony_ci} 13694514f5e3Sopenharmony_ci 13704514f5e3Sopenharmony_citry { 13714514f5e3Sopenharmony_ci const array = [1, 2, 3, 4, 5]; 13724514f5e3Sopenharmony_ci print(array.findLastIndex("not a function")); 13734514f5e3Sopenharmony_ci} catch (error) { 13744514f5e3Sopenharmony_ci print("Caught an error: ", error); 13754514f5e3Sopenharmony_ci} 13764514f5e3Sopenharmony_ci 13774514f5e3Sopenharmony_citry { 13784514f5e3Sopenharmony_ci let array = null; 13794514f5e3Sopenharmony_ci print(array.findLastIndex(item => item === 1)); 13804514f5e3Sopenharmony_ci} catch (error) { 13814514f5e3Sopenharmony_ci print("Caught an error: ", error); 13824514f5e3Sopenharmony_ci} 13834514f5e3Sopenharmony_ci 13844514f5e3Sopenharmony_citry { 13854514f5e3Sopenharmony_ci array = undefined; 13864514f5e3Sopenharmony_ci print(array.findLastIndex(item => item === 1)); 13874514f5e3Sopenharmony_ci} catch (error) { 13884514f5e3Sopenharmony_ci print("Caught an error: ", error); 13894514f5e3Sopenharmony_ci} 13904514f5e3Sopenharmony_ci 13914514f5e3Sopenharmony_ci/* 13924514f5e3Sopenharmony_ci * @tc.name:Flat 13934514f5e3Sopenharmony_ci * @tc.desc:test Array 13944514f5e3Sopenharmony_ci * @tc.type: FUNC 13954514f5e3Sopenharmony_ci */ 13964514f5e3Sopenharmony_ci{ 13974514f5e3Sopenharmony_ci const array = [1, 2, [3, 4, [5, 6]], [], [[7], 8], 9, [10]]; 13984514f5e3Sopenharmony_ci 13994514f5e3Sopenharmony_ci print(array.flat()); 14004514f5e3Sopenharmony_ci print(array.flat(2)); 14014514f5e3Sopenharmony_ci 14024514f5e3Sopenharmony_ci const deeplyNestedArray = [1, [2, [3, [4, [5]]]]]; 14034514f5e3Sopenharmony_ci print(deeplyNestedArray.flat(Infinity)); 14044514f5e3Sopenharmony_ci 14054514f5e3Sopenharmony_ci const emptyArray = [1, [2, [], [3, []]]]; 14064514f5e3Sopenharmony_ci print(emptyArray.flat()); 14074514f5e3Sopenharmony_ci 14084514f5e3Sopenharmony_ci const sparseArray = [1, 2, , 3, 4, [5, , 6]]; 14094514f5e3Sopenharmony_ci print(sparseArray.flat()); 14104514f5e3Sopenharmony_ci 14114514f5e3Sopenharmony_ci const irregularArray = [1, [2, 3, [4, [5]]]]; 14124514f5e3Sopenharmony_ci print(irregularArray.flat()); 14134514f5e3Sopenharmony_ci 14144514f5e3Sopenharmony_ci const arrayWithNonArrays = [1, 'string', {name: 'John'}, null, undefined]; 14154514f5e3Sopenharmony_ci print(arrayWithNonArrays.flat()); 14164514f5e3Sopenharmony_ci 14174514f5e3Sopenharmony_ci const arrayWithNaNAndInfinity = [1, [NaN, Infinity], [2, [3, NaN]]]; 14184514f5e3Sopenharmony_ci print(arrayWithNaNAndInfinity.flat()); 14194514f5e3Sopenharmony_ci} 14204514f5e3Sopenharmony_ci 14214514f5e3Sopenharmony_citry { 14224514f5e3Sopenharmony_ci const array = [1, 2, [3, 4]]; 14234514f5e3Sopenharmony_ci print(array.flat('string')); 14244514f5e3Sopenharmony_ci} catch (error) { 14254514f5e3Sopenharmony_ci print("Caught an error: ", error); 14264514f5e3Sopenharmony_ci} 14274514f5e3Sopenharmony_ci 14284514f5e3Sopenharmony_citry { 14294514f5e3Sopenharmony_ci const array = [1, 2, [3, 4]]; 14304514f5e3Sopenharmony_ci print(array.flat(-1)); 14314514f5e3Sopenharmony_ci} catch (error) { 14324514f5e3Sopenharmony_ci print("Caught an error: ", error); 14334514f5e3Sopenharmony_ci} 14344514f5e3Sopenharmony_ci 14354514f5e3Sopenharmony_ci/* 14364514f5e3Sopenharmony_ci * @tc.name:FlatMap 14374514f5e3Sopenharmony_ci * @tc.desc:test Array 14384514f5e3Sopenharmony_ci * @tc.type: FUNC 14394514f5e3Sopenharmony_ci */ 14404514f5e3Sopenharmony_ci{ 14414514f5e3Sopenharmony_ci const array = [1, 2, 3]; 14424514f5e3Sopenharmony_ci print(array.flatMap(x => [x, x * 2])); 14434514f5e3Sopenharmony_ci print(array.flatMap(x => [])); 14444514f5e3Sopenharmony_ci print(array.flatMap(x => x * 2)); 14454514f5e3Sopenharmony_ci print(array.flatMap((x, index) => [x, index])); 14464514f5e3Sopenharmony_ci const sparseArray = [1, , 2, , 3]; 14474514f5e3Sopenharmony_ci print(sparseArray.flatMap(x => [x])); 14484514f5e3Sopenharmony_ci const nestedArray = [[1, 2], [3, 4], [5, 6]]; 14494514f5e3Sopenharmony_ci print(nestedArray.flatMap(arr => arr)); 14504514f5e3Sopenharmony_ci const arrayWithEmptyArrays = [1, [], [2, 3], [], 4]; 14514514f5e3Sopenharmony_ci print(arrayWithEmptyArrays.flatMap(x => x)); 14524514f5e3Sopenharmony_ci print(array.flatMap(x => x % 2 === 0 ? [x, x * 2] : x)); 14534514f5e3Sopenharmony_ci} 14544514f5e3Sopenharmony_ci 14554514f5e3Sopenharmony_ci/* 14564514f5e3Sopenharmony_ci * @tc.name:ForEach 14574514f5e3Sopenharmony_ci * @tc.desc:test Array 14584514f5e3Sopenharmony_ci * @tc.type: FUNC 14594514f5e3Sopenharmony_ci */ 14604514f5e3Sopenharmony_cioriginalArrays.forEach(array => { 14614514f5e3Sopenharmony_ci array.forEach(item => { 14624514f5e3Sopenharmony_ci print(item); 14634514f5e3Sopenharmony_ci }); 14644514f5e3Sopenharmony_ci}); 14654514f5e3Sopenharmony_ci 14664514f5e3Sopenharmony_citry { 14674514f5e3Sopenharmony_ci const array = [1, 2, 3]; 14684514f5e3Sopenharmony_ci array.forEach('not a function'); 14694514f5e3Sopenharmony_ci} catch (error) { 14704514f5e3Sopenharmony_ci print("Caught an error: ", error); 14714514f5e3Sopenharmony_ci} 14724514f5e3Sopenharmony_ci 14734514f5e3Sopenharmony_ci/* 14744514f5e3Sopenharmony_ci * @tc.name:Includes 14754514f5e3Sopenharmony_ci * @tc.desc:test Array 14764514f5e3Sopenharmony_ci * @tc.type: FUNC 14774514f5e3Sopenharmony_ci */ 14784514f5e3Sopenharmony_ciconst testCases = [ 14794514f5e3Sopenharmony_ci { array: [1, 2, 3, 4, 5], target: 3 }, 14804514f5e3Sopenharmony_ci { array: [1, 2, 3, 4, 5], target: 6 }, 14814514f5e3Sopenharmony_ci { array: [NaN, 2, 3], target: NaN }, 14824514f5e3Sopenharmony_ci { array: [undefined, 2, 3], target: undefined }, 14834514f5e3Sopenharmony_ci { array: ["apple", "banana", "orange"], target: "banana" }, 14844514f5e3Sopenharmony_ci { array: ["apple", "banana", "orange"], target: "grape" }, 14854514f5e3Sopenharmony_ci { array: [], target: 1 }, 14864514f5e3Sopenharmony_ci { array: [true, false, true], target: true }, 14874514f5e3Sopenharmony_ci { array: [true, false, true], target: false }, 14884514f5e3Sopenharmony_ci { array: [Infinity, -Infinity], target: Infinity }, 14894514f5e3Sopenharmony_ci { array: [Infinity, -Infinity], target: -Infinity }, 14904514f5e3Sopenharmony_ci { array: [new Map(), new Map()], target: new Map() }, 14914514f5e3Sopenharmony_ci { array: [new Set(), new Set()], target: new Set() }, 14924514f5e3Sopenharmony_ci]; 14934514f5e3Sopenharmony_ci 14944514f5e3Sopenharmony_citestCases.forEach(({ array, target }) => { 14954514f5e3Sopenharmony_ci const result = array.includes(target); 14964514f5e3Sopenharmony_ci print(`Array: [${array.join(', ')}], Target: ${target}, Result: ${result}`); 14974514f5e3Sopenharmony_ci}); 14984514f5e3Sopenharmony_ci 14994514f5e3Sopenharmony_ci/* 15004514f5e3Sopenharmony_ci * @tc.name:IndexOf 15014514f5e3Sopenharmony_ci * @tc.desc:test Array 15024514f5e3Sopenharmony_ci * @tc.type: FUNC 15034514f5e3Sopenharmony_ci */ 15044514f5e3Sopenharmony_ci{ 15054514f5e3Sopenharmony_ci let arr = [1, 2, 3, 4, 5]; 15064514f5e3Sopenharmony_ci print(arr.indexOf(3)); 15074514f5e3Sopenharmony_ci print(arr.indexOf(1)); 15084514f5e3Sopenharmony_ci print(arr.indexOf(5)); 15094514f5e3Sopenharmony_ci print([].indexOf(1)); 15104514f5e3Sopenharmony_ci let arr2 = ["apple", "banana", "cherry"]; 15114514f5e3Sopenharmony_ci print(arr2.indexOf("banana")) 15124514f5e3Sopenharmony_ci let arr3 = [1, 2, 2, 3, 4, 2]; 15134514f5e3Sopenharmony_ci print(arr3.indexOf(2)); 15144514f5e3Sopenharmony_ci print(arr.indexOf(10)); 15154514f5e3Sopenharmony_ci let arr4 = [{id: 1}, {id: 2}, {id: 3}]; 15164514f5e3Sopenharmony_ci print(arr4.indexOf({id: 2})); 15174514f5e3Sopenharmony_ci print(arr4.findIndex(item => item.id === 2)); 15184514f5e3Sopenharmony_ci print("not an array".indexOf(1)); 15194514f5e3Sopenharmony_ci} 15204514f5e3Sopenharmony_ci 15214514f5e3Sopenharmony_ci/* 15224514f5e3Sopenharmony_ci * @tc.name:Join 15234514f5e3Sopenharmony_ci * @tc.desc:test Array 15244514f5e3Sopenharmony_ci * @tc.type: FUNC 15254514f5e3Sopenharmony_ci */ 15264514f5e3Sopenharmony_ci{ 15274514f5e3Sopenharmony_ci let arr = ["apple", "banana", "cherry"]; 15284514f5e3Sopenharmony_ci print(arr.join()); 15294514f5e3Sopenharmony_ci print(arr.join(", ")); 15304514f5e3Sopenharmony_ci let emptyArr = []; 15314514f5e3Sopenharmony_ci print(emptyArr.join()); 15324514f5e3Sopenharmony_ci let singleElementArr = ["apple"]; 15334514f5e3Sopenharmony_ci print(singleElementArr.join()); 15344514f5e3Sopenharmony_ci let mixedArr = ["apple", 1, {name: "John"}]; 15354514f5e3Sopenharmony_ci print(mixedArr.join()); 15364514f5e3Sopenharmony_ci let customSeparatorArr = ["apple", "banana", "cherry"]; 15374514f5e3Sopenharmony_ci print(customSeparatorArr.join(" + ")); 15384514f5e3Sopenharmony_ci} 15394514f5e3Sopenharmony_ci 15404514f5e3Sopenharmony_ci/* 15414514f5e3Sopenharmony_ci * @tc.name:Keys 15424514f5e3Sopenharmony_ci * @tc.desc:test Array 15434514f5e3Sopenharmony_ci * @tc.type: FUNC 15444514f5e3Sopenharmony_ci */ 15454514f5e3Sopenharmony_ci{ 15464514f5e3Sopenharmony_ci let arr = ["apple", "banana", "cherry"]; 15474514f5e3Sopenharmony_ci let keysIter = arr.keys(); 15484514f5e3Sopenharmony_ci for (let key of keysIter) { 15494514f5e3Sopenharmony_ci print(key); 15504514f5e3Sopenharmony_ci } 15514514f5e3Sopenharmony_ci 15524514f5e3Sopenharmony_ci let emptyArr = []; 15534514f5e3Sopenharmony_ci let emptyKeysIter = emptyArr.keys(); 15544514f5e3Sopenharmony_ci print(emptyKeysIter.next().done); 15554514f5e3Sopenharmony_ci 15564514f5e3Sopenharmony_ci let singleElementArr = ["apple"]; 15574514f5e3Sopenharmony_ci let singleElementKeysIter = singleElementArr.keys(); 15584514f5e3Sopenharmony_ci print(singleElementKeysIter.next().value); 15594514f5e3Sopenharmony_ci print(singleElementKeysIter.next().done); 15604514f5e3Sopenharmony_ci 15614514f5e3Sopenharmony_ci let multiDimArr = [["apple", "banana"], ["cherry", "date"]]; 15624514f5e3Sopenharmony_ci let multiDimKeysIter = multiDimArr.keys(); 15634514f5e3Sopenharmony_ci for (let key of multiDimKeysIter) { 15644514f5e3Sopenharmony_ci print(key); 15654514f5e3Sopenharmony_ci } 15664514f5e3Sopenharmony_ci 15674514f5e3Sopenharmony_ci let sparseArr = [1, , 3]; 15684514f5e3Sopenharmony_ci let sparseKeysIter = sparseArr.keys(); 15694514f5e3Sopenharmony_ci for (let key of sparseKeysIter) { 15704514f5e3Sopenharmony_ci print(key); 15714514f5e3Sopenharmony_ci } 15724514f5e3Sopenharmony_ci} 15734514f5e3Sopenharmony_ci 15744514f5e3Sopenharmony_ci/* 15754514f5e3Sopenharmony_ci * @tc.name:LastIndexOf 15764514f5e3Sopenharmony_ci * @tc.desc:test Array 15774514f5e3Sopenharmony_ci * @tc.type: FUNC 15784514f5e3Sopenharmony_ci */ 15794514f5e3Sopenharmony_ci{ 15804514f5e3Sopenharmony_ci let arr = [1, 2, 3, 4, 2, 5]; 15814514f5e3Sopenharmony_ci print(arr.lastIndexOf(2)); 15824514f5e3Sopenharmony_ci 15834514f5e3Sopenharmony_ci print(arr.lastIndexOf(1)); 15844514f5e3Sopenharmony_ci print(arr.lastIndexOf(5)); 15854514f5e3Sopenharmony_ci print(arr.lastIndexOf(6)); 15864514f5e3Sopenharmony_ci 15874514f5e3Sopenharmony_ci let emptyArr = []; 15884514f5e3Sopenharmony_ci print(emptyArr.lastIndexOf(1)); 15894514f5e3Sopenharmony_ci 15904514f5e3Sopenharmony_ci let arrWithNaN = [1, 2, NaN, 4, NaN]; 15914514f5e3Sopenharmony_ci print(arrWithNaN.lastIndexOf(NaN)); 15924514f5e3Sopenharmony_ci 15934514f5e3Sopenharmony_ci let arrWithUndefined = [1, 2, undefined, 4]; 15944514f5e3Sopenharmony_ci print(arrWithUndefined.lastIndexOf(undefined)); 15954514f5e3Sopenharmony_ci} 15964514f5e3Sopenharmony_ci 15974514f5e3Sopenharmony_ci/* 15984514f5e3Sopenharmony_ci * @tc.name:Map 15994514f5e3Sopenharmony_ci * @tc.desc:test Array 16004514f5e3Sopenharmony_ci * @tc.type: FUNC 16014514f5e3Sopenharmony_ci */ 16024514f5e3Sopenharmony_ci{ 16034514f5e3Sopenharmony_ci let arr = [1, 2, 3, 4, 5]; 16044514f5e3Sopenharmony_ci let mappedArr = arr.map(num => num * 2); 16054514f5e3Sopenharmony_ci print(mappedArr); 16064514f5e3Sopenharmony_ci 16074514f5e3Sopenharmony_ci let emptyArr = []; 16084514f5e3Sopenharmony_ci let mappedEmptyArr = emptyArr.map(item => item * 2); 16094514f5e3Sopenharmony_ci print(mappedEmptyArr); 16104514f5e3Sopenharmony_ci 16114514f5e3Sopenharmony_ci let arrWithNaN = [1, 2, NaN, 4, NaN]; 16124514f5e3Sopenharmony_ci let mappedArrWithNaN = arrWithNaN.map(num => num * 2); 16134514f5e3Sopenharmony_ci print(mappedArrWithNaN); 16144514f5e3Sopenharmony_ci 16154514f5e3Sopenharmony_ci let sparseArr = [1, , 3]; 16164514f5e3Sopenharmony_ci let mappedSparseArr = sparseArr.map(num => num * 2); 16174514f5e3Sopenharmony_ci print(mappedSparseArr); 16184514f5e3Sopenharmony_ci 16194514f5e3Sopenharmony_ci let objArr = [{id: 1}, {id: 2}, {id: 3}]; 16204514f5e3Sopenharmony_ci let mappedObjArr = objArr.map(obj => obj.id); 16214514f5e3Sopenharmony_ci print(mappedObjArr); 16224514f5e3Sopenharmony_ci 16234514f5e3Sopenharmony_ci let multiDimArr = [[1, 2], [3, 4], [5, 6]]; 16244514f5e3Sopenharmony_ci let mappedMultiDimArr = multiDimArr.map(innerArr => innerArr.map(num => num * 2)); 16254514f5e3Sopenharmony_ci print(mappedMultiDimArr); 16264514f5e3Sopenharmony_ci} 16274514f5e3Sopenharmony_ci 16284514f5e3Sopenharmony_ci/* 16294514f5e3Sopenharmony_ci * @tc.name:Pop 16304514f5e3Sopenharmony_ci * @tc.desc:test Array 16314514f5e3Sopenharmony_ci * @tc.type: FUNC 16324514f5e3Sopenharmony_ci */ 16334514f5e3Sopenharmony_ci{ 16344514f5e3Sopenharmony_ci let arr = [1, 2, 3, 4, 5]; 16354514f5e3Sopenharmony_ci let poppedElement = arr.pop(); 16364514f5e3Sopenharmony_ci print(poppedElement); 16374514f5e3Sopenharmony_ci print(arr); 16384514f5e3Sopenharmony_ci 16394514f5e3Sopenharmony_ci let emptyArr = []; 16404514f5e3Sopenharmony_ci let poppedEmptyElement = emptyArr.pop(); 16414514f5e3Sopenharmony_ci print(poppedEmptyElement); 16424514f5e3Sopenharmony_ci print(emptyArr); 16434514f5e3Sopenharmony_ci 16444514f5e3Sopenharmony_ci let singleElementArr = [1]; 16454514f5e3Sopenharmony_ci let poppedSingleElement = singleElementArr.pop(); 16464514f5e3Sopenharmony_ci print(poppedSingleElement); 16474514f5e3Sopenharmony_ci print(singleElementArr); 16484514f5e3Sopenharmony_ci 16494514f5e3Sopenharmony_ci let anotherSingleElementArr = ["apple"]; 16504514f5e3Sopenharmony_ci let poppedAnotherSingleElement = anotherSingleElementArr.pop(); 16514514f5e3Sopenharmony_ci print(poppedAnotherSingleElement); 16524514f5e3Sopenharmony_ci} 16534514f5e3Sopenharmony_ci 16544514f5e3Sopenharmony_ci/* 16554514f5e3Sopenharmony_ci * @tc.name:Push 16564514f5e3Sopenharmony_ci * @tc.desc:test Array 16574514f5e3Sopenharmony_ci * @tc.type: FUNC 16584514f5e3Sopenharmony_ci */ 16594514f5e3Sopenharmony_ci{ 16604514f5e3Sopenharmony_ci let arr = [1, 2, 3]; 16614514f5e3Sopenharmony_ci arr.push(4); 16624514f5e3Sopenharmony_ci print(arr); 16634514f5e3Sopenharmony_ci 16644514f5e3Sopenharmony_ci arr.push(5, 6); 16654514f5e3Sopenharmony_ci print(arr); 16664514f5e3Sopenharmony_ci 16674514f5e3Sopenharmony_ci let emptyArr = []; 16684514f5e3Sopenharmony_ci emptyArr.push(1); 16694514f5e3Sopenharmony_ci print(emptyArr); 16704514f5e3Sopenharmony_ci 16714514f5e3Sopenharmony_ci let objArr = [{ id: 1 }]; 16724514f5e3Sopenharmony_ci objArr.push({ id: 2 }); 16734514f5e3Sopenharmony_ci print(objArr); 16744514f5e3Sopenharmony_ci 16754514f5e3Sopenharmony_ci let nestedArr = [1, 2]; 16764514f5e3Sopenharmony_ci nestedArr.push([3, 4]); 16774514f5e3Sopenharmony_ci print(nestedArr); 16784514f5e3Sopenharmony_ci 16794514f5e3Sopenharmony_ci let arrWithUndefined = [1, 2, 3]; 16804514f5e3Sopenharmony_ci arrWithUndefined.push(undefined); 16814514f5e3Sopenharmony_ci print(arrWithUndefined); 16824514f5e3Sopenharmony_ci 16834514f5e3Sopenharmony_ci let singleElementArr = [1]; 16844514f5e3Sopenharmony_ci singleElementArr.push(2); 16854514f5e3Sopenharmony_ci print(singleElementArr); 16864514f5e3Sopenharmony_ci} 16874514f5e3Sopenharmony_ci 16884514f5e3Sopenharmony_ci/* 16894514f5e3Sopenharmony_ci * @tc.name:Reduce 16904514f5e3Sopenharmony_ci * @tc.desc:test Array 16914514f5e3Sopenharmony_ci * @tc.type: FUNC 16924514f5e3Sopenharmony_ci */ 16934514f5e3Sopenharmony_ci{ 16944514f5e3Sopenharmony_ci let arr = [1, 2, 3, 4, 5]; 16954514f5e3Sopenharmony_ci let sum = arr.reduce((accumulator, currentValue) => accumulator + currentValue, 0); 16964514f5e3Sopenharmony_ci print(sum); 16974514f5e3Sopenharmony_ci 16984514f5e3Sopenharmony_ci let emptyArr = []; 16994514f5e3Sopenharmony_ci let sumOfEmptyArr = emptyArr.reduce((accumulator, currentValue) => accumulator + currentValue, 0); 17004514f5e3Sopenharmony_ci print(sumOfEmptyArr); 17014514f5e3Sopenharmony_ci 17024514f5e3Sopenharmony_ci let singleArr = [1]; 17034514f5e3Sopenharmony_ci let sumOfSingleArr = singleArr.reduce((accumulator, currentValue) => accumulator + currentValue, 0); 17044514f5e3Sopenharmony_ci print(sumOfSingleArr); 17054514f5e3Sopenharmony_ci 17064514f5e3Sopenharmony_ci let arrNaN = [1, 2, NaN, 4]; 17074514f5e3Sopenharmony_ci let sumOfArrNaN = arrNaN.reduce((accumulator, currentValue) => accumulator + currentValue, 0); 17084514f5e3Sopenharmony_ci print(sumOfArrNaN); 17094514f5e3Sopenharmony_ci} 17104514f5e3Sopenharmony_ci 17114514f5e3Sopenharmony_ci/* 17124514f5e3Sopenharmony_ci * @tc.name:ReduceRight 17134514f5e3Sopenharmony_ci * @tc.desc:test Array 17144514f5e3Sopenharmony_ci * @tc.type: FUNC 17154514f5e3Sopenharmony_ci */ 17164514f5e3Sopenharmony_ci{ 17174514f5e3Sopenharmony_ci let array1 = ["a", "b", "c", "d", "e"]; 17184514f5e3Sopenharmony_ci let result1 = array1.reduceRight((acc, curr) => acc + curr); 17194514f5e3Sopenharmony_ci print(result1); 17204514f5e3Sopenharmony_ci 17214514f5e3Sopenharmony_ci let array2 = []; 17224514f5e3Sopenharmony_ci let result2 = array2.reduceRight((acc, curr) => acc + curr, "initialValue"); 17234514f5e3Sopenharmony_ci print(result2); 17244514f5e3Sopenharmony_ci 17254514f5e3Sopenharmony_ci let array3 = ["a"]; 17264514f5e3Sopenharmony_ci let result3 = array3.reduceRight((acc, curr) => acc + curr); 17274514f5e3Sopenharmony_ci print(result3); 17284514f5e3Sopenharmony_ci 17294514f5e3Sopenharmony_ci let array4 = ["a", "b", undefined, "d"]; 17304514f5e3Sopenharmony_ci let result4 = array4.reduceRight((acc, curr) => acc + curr); 17314514f5e3Sopenharmony_ci print(result4); 17324514f5e3Sopenharmony_ci} 17334514f5e3Sopenharmony_ci 17344514f5e3Sopenharmony_ci/* 17354514f5e3Sopenharmony_ci * @tc.name:Reverse 17364514f5e3Sopenharmony_ci * @tc.desc:test Array 17374514f5e3Sopenharmony_ci * @tc.type: FUNC 17384514f5e3Sopenharmony_ci */ 17394514f5e3Sopenharmony_ci{ 17404514f5e3Sopenharmony_ci let array1 = ["a", "b", "c", "d", "e"]; 17414514f5e3Sopenharmony_ci array1.reverse(); 17424514f5e3Sopenharmony_ci print(array1); 17434514f5e3Sopenharmony_ci 17444514f5e3Sopenharmony_ci let emptyArray = []; 17454514f5e3Sopenharmony_ci emptyArray.reverse(); 17464514f5e3Sopenharmony_ci print(emptyArray); 17474514f5e3Sopenharmony_ci 17484514f5e3Sopenharmony_ci let singleElementArray = ["a"]; 17494514f5e3Sopenharmony_ci singleElementArray.reverse(); 17504514f5e3Sopenharmony_ci print(singleElementArray); 17514514f5e3Sopenharmony_ci 17524514f5e3Sopenharmony_ci let arrayWithUndefined = ["a", "b", undefined, "d"]; 17534514f5e3Sopenharmony_ci arrayWithUndefined.reverse(); 17544514f5e3Sopenharmony_ci print(arrayWithUndefined); 17554514f5e3Sopenharmony_ci} 17564514f5e3Sopenharmony_ci 17574514f5e3Sopenharmony_ci/* 17584514f5e3Sopenharmony_ci * @tc.name:Shift 17594514f5e3Sopenharmony_ci * @tc.desc:test Array 17604514f5e3Sopenharmony_ci * @tc.type: FUNC 17614514f5e3Sopenharmony_ci */ 17624514f5e3Sopenharmony_ci{ 17634514f5e3Sopenharmony_ci let array1 = ["a", "b", "c", "d", "e"]; 17644514f5e3Sopenharmony_ci let shiftedElement1 = array1.shift(); 17654514f5e3Sopenharmony_ci print(shiftedElement1); 17664514f5e3Sopenharmony_ci print(array1); 17674514f5e3Sopenharmony_ci 17684514f5e3Sopenharmony_ci let emptyArray = []; 17694514f5e3Sopenharmony_ci let shiftedElement2 = emptyArray.shift(); 17704514f5e3Sopenharmony_ci print(shiftedElement2); 17714514f5e3Sopenharmony_ci print(emptyArray); 17724514f5e3Sopenharmony_ci 17734514f5e3Sopenharmony_ci let singleElementArray = ["a"]; 17744514f5e3Sopenharmony_ci let shiftedElement3 = singleElementArray.shift(); 17754514f5e3Sopenharmony_ci print(shiftedElement3); 17764514f5e3Sopenharmony_ci print(singleElementArray); 17774514f5e3Sopenharmony_ci 17784514f5e3Sopenharmony_ci let arrayWithUndefined = ["a", undefined, "b", "c"]; 17794514f5e3Sopenharmony_ci let shiftedElement4 = arrayWithUndefined.shift(); 17804514f5e3Sopenharmony_ci print(shiftedElement4); 17814514f5e3Sopenharmony_ci print(arrayWithUndefined); 17824514f5e3Sopenharmony_ci} 17834514f5e3Sopenharmony_ci 17844514f5e3Sopenharmony_ci/* 17854514f5e3Sopenharmony_ci * @tc.name:Slice 17864514f5e3Sopenharmony_ci * @tc.desc:test Array 17874514f5e3Sopenharmony_ci * @tc.type: FUNC 17884514f5e3Sopenharmony_ci */ 17894514f5e3Sopenharmony_ci{ 17904514f5e3Sopenharmony_ci let array1 = ["a", "b", "c", "d", "e"]; 17914514f5e3Sopenharmony_ci let slicedArray1 = array1.slice(1, 3); 17924514f5e3Sopenharmony_ci print(slicedArray1); 17934514f5e3Sopenharmony_ci 17944514f5e3Sopenharmony_ci let emptyArray = []; 17954514f5e3Sopenharmony_ci let slicedEmptyArray = emptyArray.slice(1, 3); 17964514f5e3Sopenharmony_ci print(slicedEmptyArray); 17974514f5e3Sopenharmony_ci 17984514f5e3Sopenharmony_ci let singleElementArray = ["a"]; 17994514f5e3Sopenharmony_ci let slicedSingleElementArray = singleElementArray.slice(0, 1); 18004514f5e3Sopenharmony_ci print(slicedSingleElementArray); 18014514f5e3Sopenharmony_ci 18024514f5e3Sopenharmony_ci let arrayWithUndefined = ["a", undefined, "b", "c"]; 18034514f5e3Sopenharmony_ci let slicedArrayWithUndefined = arrayWithUndefined.slice(1, 3); 18044514f5e3Sopenharmony_ci print(slicedArrayWithUndefined); 18054514f5e3Sopenharmony_ci} 18064514f5e3Sopenharmony_ci 18074514f5e3Sopenharmony_ci/* 18084514f5e3Sopenharmony_ci * @tc.name:Some 18094514f5e3Sopenharmony_ci * @tc.desc:test Array 18104514f5e3Sopenharmony_ci * @tc.type: FUNC 18114514f5e3Sopenharmony_ci */ 18124514f5e3Sopenharmony_ci{ 18134514f5e3Sopenharmony_ci let array1 = [1, 2, 3, 4, 5]; 18144514f5e3Sopenharmony_ci let isSomeEven = array1.some(num => num % 2 === 0); 18154514f5e3Sopenharmony_ci print(isSomeEven); 18164514f5e3Sopenharmony_ci 18174514f5e3Sopenharmony_ci let array2 = [1, 3, 5, 7, 9]; 18184514f5e3Sopenharmony_ci let isSomeEven2 = array2.some(num => num % 2 === 0); 18194514f5e3Sopenharmony_ci print(isSomeEven2); 18204514f5e3Sopenharmony_ci 18214514f5e3Sopenharmony_ci let emptyArray = []; 18224514f5e3Sopenharmony_ci let isSomeEmpty = emptyArray.some(num => num > 0); 18234514f5e3Sopenharmony_ci print(isSomeEmpty); 18244514f5e3Sopenharmony_ci 18254514f5e3Sopenharmony_ci let singleElementArray = [1]; 18264514f5e3Sopenharmony_ci let isSomeSingleElement = singleElementArray.some(num => num > 0); 18274514f5e3Sopenharmony_ci print(isSomeSingleElement); 18284514f5e3Sopenharmony_ci 18294514f5e3Sopenharmony_ci let arrayWithUndefined = [1, undefined, 3, 5]; 18304514f5e3Sopenharmony_ci let isSomeUndefined = arrayWithUndefined.some(num => num === undefined); 18314514f5e3Sopenharmony_ci print(isSomeUndefined); 18324514f5e3Sopenharmony_ci} 18334514f5e3Sopenharmony_ci 18344514f5e3Sopenharmony_ci/* 18354514f5e3Sopenharmony_ci * @tc.name:Sort 18364514f5e3Sopenharmony_ci * @tc.desc:test Array 18374514f5e3Sopenharmony_ci * @tc.type: FUNC 18384514f5e3Sopenharmony_ci */ 18394514f5e3Sopenharmony_ci{ 18404514f5e3Sopenharmony_ci let array1 = [3, 1, 4, 1, 5, 9, 2, 6, 5]; 18414514f5e3Sopenharmony_ci array1.sort(); 18424514f5e3Sopenharmony_ci print(array1); 18434514f5e3Sopenharmony_ci 18444514f5e3Sopenharmony_ci let emptyArray = []; 18454514f5e3Sopenharmony_ci emptyArray.sort(); 18464514f5e3Sopenharmony_ci print(emptyArray); 18474514f5e3Sopenharmony_ci 18484514f5e3Sopenharmony_ci let singleElementArray = [1]; 18494514f5e3Sopenharmony_ci singleElementArray.sort(); 18504514f5e3Sopenharmony_ci print(singleElementArray); 18514514f5e3Sopenharmony_ci 18524514f5e3Sopenharmony_ci let arrayWithUndefined = [1, undefined, 3, 5]; 18534514f5e3Sopenharmony_ci arrayWithUndefined.sort(); 18544514f5e3Sopenharmony_ci print(arrayWithUndefined); 18554514f5e3Sopenharmony_ci 18564514f5e3Sopenharmony_ci let arrayWithStrings = ["banana", "apple", "cherry"]; 18574514f5e3Sopenharmony_ci arrayWithStrings.sort(); 18584514f5e3Sopenharmony_ci print(arrayWithStrings); 18594514f5e3Sopenharmony_ci} 18604514f5e3Sopenharmony_ci 18614514f5e3Sopenharmony_ci/* 18624514f5e3Sopenharmony_ci * @tc.name:Splice 18634514f5e3Sopenharmony_ci * @tc.desc:test Array 18644514f5e3Sopenharmony_ci * @tc.type: FUNC 18654514f5e3Sopenharmony_ci */ 18664514f5e3Sopenharmony_ci{ 18674514f5e3Sopenharmony_ci let array1 = ["a", "b", "c", "d", "e"]; 18684514f5e3Sopenharmony_ci let removedElements1 = array1.splice(2, 2, "x", "y"); 18694514f5e3Sopenharmony_ci print(removedElements1); 18704514f5e3Sopenharmony_ci print(array1); 18714514f5e3Sopenharmony_ci 18724514f5e3Sopenharmony_ci let emptyArray = []; 18734514f5e3Sopenharmony_ci let removedElements2 = emptyArray.splice(0, 0, "x", "y"); 18744514f5e3Sopenharmony_ci print(removedElements2); 18754514f5e3Sopenharmony_ci print(emptyArray); 18764514f5e3Sopenharmony_ci 18774514f5e3Sopenharmony_ci let singleElementArray = ["a"]; 18784514f5e3Sopenharmony_ci let removedElements3 = singleElementArray.splice(0, 1, "x", "y"); 18794514f5e3Sopenharmony_ci print(removedElements3); 18804514f5e3Sopenharmony_ci print(singleElementArray); 18814514f5e3Sopenharmony_ci 18824514f5e3Sopenharmony_ci let arrayWithUndefined = [1, undefined, 3, 5]; 18834514f5e3Sopenharmony_ci let removedElements4 = arrayWithUndefined.splice(1, 2); 18844514f5e3Sopenharmony_ci print(removedElements4); 18854514f5e3Sopenharmony_ci print(arrayWithUndefined); 18864514f5e3Sopenharmony_ci} 18874514f5e3Sopenharmony_ci 18884514f5e3Sopenharmony_ci/* 18894514f5e3Sopenharmony_ci * @tc.name:toString 18904514f5e3Sopenharmony_ci * @tc.desc:test Array 18914514f5e3Sopenharmony_ci * @tc.type: FUNC 18924514f5e3Sopenharmony_ci */ 18934514f5e3Sopenharmony_ci{ 18944514f5e3Sopenharmony_ci let array = ["apple", "banana", "cherry"]; 18954514f5e3Sopenharmony_ci let string = array.toString(); 18964514f5e3Sopenharmony_ci print(string); 18974514f5e3Sopenharmony_ci 18984514f5e3Sopenharmony_ci let numbers = [1, 2, 3, 4, 5]; 18994514f5e3Sopenharmony_ci let string2 = numbers.toString(); 19004514f5e3Sopenharmony_ci print(string2); 19014514f5e3Sopenharmony_ci 19024514f5e3Sopenharmony_ci let mixed = [1, "two", true]; 19034514f5e3Sopenharmony_ci let string3 = mixed.toString(); 19044514f5e3Sopenharmony_ci print(string3); 19054514f5e3Sopenharmony_ci} 19064514f5e3Sopenharmony_ci 19074514f5e3Sopenharmony_ci/* 19084514f5e3Sopenharmony_ci * @tc.name:Unshift 19094514f5e3Sopenharmony_ci * @tc.desc:test Array 19104514f5e3Sopenharmony_ci * @tc.type: FUNC 19114514f5e3Sopenharmony_ci */ 19124514f5e3Sopenharmony_ci{ 19134514f5e3Sopenharmony_ci let array1 = ["a", "b", "c"]; 19144514f5e3Sopenharmony_ci let newLength1 = array1.unshift("x", "y"); 19154514f5e3Sopenharmony_ci print(newLength1); 19164514f5e3Sopenharmony_ci print(array1); 19174514f5e3Sopenharmony_ci 19184514f5e3Sopenharmony_ci let emptyArray = []; 19194514f5e3Sopenharmony_ci let newLength2 = emptyArray.unshift("x", "y"); 19204514f5e3Sopenharmony_ci print(newLength2); 19214514f5e3Sopenharmony_ci print(emptyArray); 19224514f5e3Sopenharmony_ci 19234514f5e3Sopenharmony_ci let singleElementArray = ["a"]; 19244514f5e3Sopenharmony_ci let newLength3 = singleElementArray.unshift("x"); 19254514f5e3Sopenharmony_ci print(newLength3); 19264514f5e3Sopenharmony_ci print(singleElementArray); 19274514f5e3Sopenharmony_ci 19284514f5e3Sopenharmony_ci let arrayWithUndefined = [1, 2, undefined]; 19294514f5e3Sopenharmony_ci let newLength4 = arrayWithUndefined.unshift("x"); 19304514f5e3Sopenharmony_ci print(newLength4); 19314514f5e3Sopenharmony_ci print(arrayWithUndefined); 19324514f5e3Sopenharmony_ci 19334514f5e3Sopenharmony_ci let arrayWithHole = [1, 2, ,4]; 19344514f5e3Sopenharmony_ci let newLength5 = arrayWithHole.unshift(5, 6, 7); 19354514f5e3Sopenharmony_ci print(newLength5); 19364514f5e3Sopenharmony_ci print(arrayWithHole); 19374514f5e3Sopenharmony_ci 19384514f5e3Sopenharmony_ci let arrayWithHole1 = [1, 2, ,4]; 19394514f5e3Sopenharmony_ci let newLength6 = arrayWithHole1.unshift(5, 6, 7, 8); 19404514f5e3Sopenharmony_ci print(newLength6); 19414514f5e3Sopenharmony_ci print(arrayWithHole1); 19424514f5e3Sopenharmony_ci} 19434514f5e3Sopenharmony_ci 19444514f5e3Sopenharmony_ci/* 19454514f5e3Sopenharmony_ci * @tc.name:ToReversed ToSorted ToSpliced With 19464514f5e3Sopenharmony_ci * @tc.desc:test Array 19474514f5e3Sopenharmony_ci * @tc.type: FUNC 19484514f5e3Sopenharmony_ci */ 19494514f5e3Sopenharmony_ci{ 19504514f5e3Sopenharmony_ci let array1 = ["a", "b", "c", "d", "e"]; 19514514f5e3Sopenharmony_ci print(array1.toReversed()); 19524514f5e3Sopenharmony_ci 19534514f5e3Sopenharmony_ci let emptyArray = []; 19544514f5e3Sopenharmony_ci print(emptyArray.toReversed()); 19554514f5e3Sopenharmony_ci 19564514f5e3Sopenharmony_ci let singleElementArray = ["a"]; 19574514f5e3Sopenharmony_ci print(singleElementArray.toReversed()); 19584514f5e3Sopenharmony_ci 19594514f5e3Sopenharmony_ci let arrayWithUndefined = ["a", "b", undefined, "d"]; 19604514f5e3Sopenharmony_ci print(arrayWithUndefined.toReversed()); 19614514f5e3Sopenharmony_ci} 19624514f5e3Sopenharmony_ci 19634514f5e3Sopenharmony_ci{ 19644514f5e3Sopenharmony_ci let array1 = [3, 1, 4, 1, 5, 9, 2, 6, 5]; 19654514f5e3Sopenharmony_ci print(array1.toSorted()); 19664514f5e3Sopenharmony_ci 19674514f5e3Sopenharmony_ci let emptyArray = []; 19684514f5e3Sopenharmony_ci print(emptyArray.toSorted()); 19694514f5e3Sopenharmony_ci 19704514f5e3Sopenharmony_ci let singleElementArray = [1]; 19714514f5e3Sopenharmony_ci print(singleElementArray.toSorted()); 19724514f5e3Sopenharmony_ci 19734514f5e3Sopenharmony_ci let arrayWithUndefined = [1, undefined, 3, 5]; 19744514f5e3Sopenharmony_ci print(arrayWithUndefined.toSorted()); 19754514f5e3Sopenharmony_ci 19764514f5e3Sopenharmony_ci let arrayWithStrings = ["banana", "apple", "cherry"]; 19774514f5e3Sopenharmony_ci print(arrayWithStrings.toSorted()); 19784514f5e3Sopenharmony_ci} 19794514f5e3Sopenharmony_ci 19804514f5e3Sopenharmony_ci{ 19814514f5e3Sopenharmony_ci let array1 = ["a", "b", "c", "d", "e"]; 19824514f5e3Sopenharmony_ci let removedElements1 = array1.toSpliced(2, 2, "x", "y"); 19834514f5e3Sopenharmony_ci print(removedElements1); 19844514f5e3Sopenharmony_ci print(array1); 19854514f5e3Sopenharmony_ci 19864514f5e3Sopenharmony_ci let emptyArray = []; 19874514f5e3Sopenharmony_ci let removedElements2 = emptyArray.toSpliced(0, 0, "x", "y"); 19884514f5e3Sopenharmony_ci print(removedElements2); 19894514f5e3Sopenharmony_ci print(emptyArray); 19904514f5e3Sopenharmony_ci 19914514f5e3Sopenharmony_ci let singleElementArray = ["a"]; 19924514f5e3Sopenharmony_ci let removedElements3 = singleElementArray.toSpliced(0, 1, "x", "y"); 19934514f5e3Sopenharmony_ci print(removedElements3); 19944514f5e3Sopenharmony_ci print(singleElementArray); 19954514f5e3Sopenharmony_ci 19964514f5e3Sopenharmony_ci let arrayWithUndefined = [1, undefined, 3, 5]; 19974514f5e3Sopenharmony_ci let removedElements4 = arrayWithUndefined.toSpliced(1, 2); 19984514f5e3Sopenharmony_ci print(removedElements4); 19994514f5e3Sopenharmony_ci print(arrayWithUndefined); 20004514f5e3Sopenharmony_ci} 20014514f5e3Sopenharmony_ci 20024514f5e3Sopenharmony_ci/* 20034514f5e3Sopenharmony_ci * @tc.name:IsArray 20044514f5e3Sopenharmony_ci * @tc.desc:test Array 20054514f5e3Sopenharmony_ci * @tc.type: FUNC 20064514f5e3Sopenharmony_ci */ 20074514f5e3Sopenharmony_ci{ 20084514f5e3Sopenharmony_ci // print true 20094514f5e3Sopenharmony_ci print(Array.isArray([])); 20104514f5e3Sopenharmony_ci print(Array.isArray([1])); 20114514f5e3Sopenharmony_ci print(Array.isArray(new Array())); 20124514f5e3Sopenharmony_ci print(Array.isArray(new Array("a", "b", "c", "d"))); 20134514f5e3Sopenharmony_ci print(Array.isArray(new Array(3))); 20144514f5e3Sopenharmony_ci print(Array.isArray(Array.prototype)); 20154514f5e3Sopenharmony_ci 20164514f5e3Sopenharmony_ci // print false 20174514f5e3Sopenharmony_ci print(Array.isArray()); 20184514f5e3Sopenharmony_ci print(Array.isArray({})); 20194514f5e3Sopenharmony_ci print(Array.isArray(null)); 20204514f5e3Sopenharmony_ci print(Array.isArray(undefined)); 20214514f5e3Sopenharmony_ci print(Array.isArray(17)); 20224514f5e3Sopenharmony_ci print(Array.isArray("Array")); 20234514f5e3Sopenharmony_ci print(Array.isArray(true)); 20244514f5e3Sopenharmony_ci print(Array.isArray(false)); 20254514f5e3Sopenharmony_ci print(Array.isArray(new Uint8Array(32))); 20264514f5e3Sopenharmony_ci print(Array.isArray({ __proto__: Array.prototype })); 20274514f5e3Sopenharmony_ci} 20284514f5e3Sopenharmony_ci 20294514f5e3Sopenharmony_civar arr_push = []; 20304514f5e3Sopenharmony_ciObject.defineProperty(arr_push, "length", { writable : false}); 20314514f5e3Sopenharmony_citry { 20324514f5e3Sopenharmony_ci arr_push.push(3); 20334514f5e3Sopenharmony_ci} catch (e) { 20344514f5e3Sopenharmony_ci print(e instanceof TypeError); 20354514f5e3Sopenharmony_ci}