14514f5e3Sopenharmony_ci/* 24514f5e3Sopenharmony_ci * Copyright (c) 2023 Huawei Device Co., Ltd. 34514f5e3Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 44514f5e3Sopenharmony_ci * you may not use this file except in compliance with the License. 54514f5e3Sopenharmony_ci * You may obtain a copy of the License at 64514f5e3Sopenharmony_ci * 74514f5e3Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 84514f5e3Sopenharmony_ci * 94514f5e3Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 104514f5e3Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 114514f5e3Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 124514f5e3Sopenharmony_ci * See the License for the specific language governing permissions and 134514f5e3Sopenharmony_ci * limitations under the License. 144514f5e3Sopenharmony_ci */ 154514f5e3Sopenharmony_ci 164514f5e3Sopenharmony_ci/* 174514f5e3Sopenharmony_ci * @tc.name:arraySlice 184514f5e3Sopenharmony_ci * @tc.desc:test array.slice 194514f5e3Sopenharmony_ci * @tc.type: FUNC 204514f5e3Sopenharmony_ci * @tc.require: 214514f5e3Sopenharmony_ci */ 224514f5e3Sopenharmony_ci 234514f5e3Sopenharmony_ciconst animals = ['ant', 'bison', 'camel', 'duck', 'elephant']; 244514f5e3Sopenharmony_ci 254514f5e3Sopenharmony_ciprint(animals.slice(2)); 264514f5e3Sopenharmony_ci// Expected output: Array ["camel", "duck", "elephant"] 274514f5e3Sopenharmony_ci 284514f5e3Sopenharmony_ciprint(animals.slice(2, 4)); 294514f5e3Sopenharmony_ci// Expected output: Array ["camel", "duck"] 304514f5e3Sopenharmony_ci 314514f5e3Sopenharmony_ciprint(animals.slice(1, 5)); 324514f5e3Sopenharmony_ci// Expected output: Array ["bison", "camel", "duck", "elephant"] 334514f5e3Sopenharmony_ci 344514f5e3Sopenharmony_ciprint(animals.slice(-2)); 354514f5e3Sopenharmony_ci// Expected output: Array ["duck", "elephant"] 364514f5e3Sopenharmony_ci 374514f5e3Sopenharmony_ciprint(animals.slice(2, -1)); 384514f5e3Sopenharmony_ci// Expected output: Array ["camel", "duck"] 394514f5e3Sopenharmony_ci 404514f5e3Sopenharmony_ciprint(animals.slice()); 414514f5e3Sopenharmony_ci// Expected output: Array ["ant", "bison", "camel", "duck", "elephant"] 424514f5e3Sopenharmony_ci 434514f5e3Sopenharmony_ciprint([1, 2, , 4, 5].slice(1, 4)); // [2, empty, 4] 444514f5e3Sopenharmony_ciconst arrayLike = { 454514f5e3Sopenharmony_ci length: 3, 464514f5e3Sopenharmony_ci 0: 2, 474514f5e3Sopenharmony_ci 1: 3, 484514f5e3Sopenharmony_ci 2: 4, 494514f5e3Sopenharmony_ci}; 504514f5e3Sopenharmony_ciprint(Array.prototype.slice.call(arrayLike, 1, 3)); 514514f5e3Sopenharmony_ci 524514f5e3Sopenharmony_ciconst slice = Function.prototype.call.bind(Array.prototype.slice); 534514f5e3Sopenharmony_cifunction list() { 544514f5e3Sopenharmony_ci return slice(arguments); 554514f5e3Sopenharmony_ci} 564514f5e3Sopenharmony_ci 574514f5e3Sopenharmony_ciconst list1 = list(1, 2, 3); // [1, 2, 3] 584514f5e3Sopenharmony_ciprint(list1); 594514f5e3Sopenharmony_ci 604514f5e3Sopenharmony_civar srcArr = [0, 1, true, null, new Object(), "five"]; 614514f5e3Sopenharmony_cisrcArr[9999999] = -6.6; 624514f5e3Sopenharmony_civar resArr = srcArr.slice(1, 3); 634514f5e3Sopenharmony_ciprint(resArr); 644514f5e3Sopenharmony_ci 654514f5e3Sopenharmony_civar A = function(_length) { 664514f5e3Sopenharmony_ci this.length = 0; 674514f5e3Sopenharmony_ci Object.preventExtensions(this); 684514f5e3Sopenharmony_ci}; 694514f5e3Sopenharmony_civar arr = [1]; 704514f5e3Sopenharmony_ciarr.constructor = {}; 714514f5e3Sopenharmony_ciarr.constructor[Symbol.species] = A; 724514f5e3Sopenharmony_ciarr.slice(2); 734514f5e3Sopenharmony_ciprint(arr); 74