• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (c) 2023 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 *     http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15const array1 = ['a', 'b', 'c'];
16const array2 = ['d', 'e', 'f'];
17const array3 = array1.concat(array2);
18print(array3);
19
20const letters = ["a", "b", "c"];
21const numbers = [1, 2, 3];
22
23const alphaNumeric = letters.concat(numbers);
24print(alphaNumeric);
25
26const num1 = [1, 2, 3];
27const num2 = [4, 5, 6];
28const num3 = [7, 8, 9];
29
30const numbers1 = num1.concat(num2, num3);
31
32print(numbers1);
33
34
35const letters1 = ["a", "b", "c"];
36
37const alphaNumeric1 = letters1.concat(1, [2, 3]);
38
39print(alphaNumeric1);
40
41const num11 = [[1]];
42const num22 = [2, [3]];
43
44const numbers2 = num1.concat(num22);
45
46print(numbers2);
47// [[1], 2, [3]]
48
49num11[0].push(4);
50
51print(numbers2);
52
53print([1, , 3].concat([4, 5])); // [1, empty, 3, 4, 5]
54print([1, 2].concat([3, , 5])); // [1, 2, 3, empty, 5]
55
56const emptyArr = [];
57print(emptyArr.concat([]).length);
58
59/*
60 * @tc.name:Array concat1
61 * @tc.desc:test long Array Concat long Array and change proto
62 * @tc.type: FUNC
63 */
64{
65    let arr1 = new Array(2000);
66    arr1[0] = 1;
67    arr1[1] = 1;
68    let arr2 = new Array(2000);
69    arr2.__proto__ = arr1;
70    arr2[1] = 3;
71    arr2[2] = 2;
72    arr2[3] = "ab";
73    arr2[4] = 1;
74    let arr3 = new Array(2000);
75    let arr4 = arr3.concat(arr2);
76    print(arr4[2000], arr4[2001], arr4[2002], arr4[2003], arr4[2004]);
77}
78
79/*
80 * @tc.name:Array concat2
81 * @tc.desc:test long Array Concat short Array and change proto
82 * @tc.type: FUNC
83 */
84{
85    let arr1 = new Array(10);
86    arr1[0] = 1;
87    arr1[1] = 1;
88    let arr2 = new Array(10);
89    arr2.__proto__ = arr1;
90    arr2[1] = 3;
91    arr2[2] = 2;
92    arr2[3] = "ab";
93    arr2[4] = 1;
94    let arr3 = new Array(2000);
95    let arr4 = arr3.concat(arr2);
96    print(arr4[2000], arr4[2001], arr4[2002], arr4[2003], arr4[2004]);
97}
98
99/*
100 * @tc.name:Array concat3
101 * @tc.desc:test short Array Concat long Array and change proto
102 * @tc.type: FUNC
103 */
104{
105    let arr1 = new Array(2000);
106    arr1[0] = 1;
107    arr1[1] = 1;
108    let arr2 = new Array(2000);
109    arr2.__proto__ = arr1;
110    arr2[1] = 3;
111    arr2[2] = 2;
112    arr2[3] = "ab";
113    arr2[4] = 1;
114    let arr3 = new Array(10);
115    let arr4 = arr3.concat(arr2);
116    print(arr4[10], arr4[11], arr4[12], arr4[13], arr4[14]);
117}
118
119/*
120 * @tc.name:Array concat4
121 * @tc.desc:test long Array Concat long Array
122 * @tc.type: FUNC
123 */
124{
125    let arr2 = new Array(2000);
126    arr2[1] = 3;
127    arr2[2] = 2;
128    arr2[3] = "ab";
129    arr2[4] = 1;
130    let arr3 = new Array(2000);
131    let arr4 = arr3.concat(arr2);
132    print(arr4[2000], arr4[2001], arr4[2002], arr4[2003], arr4[2004]);
133}
134
135/*
136 * @tc.name:Array concat5
137 * @tc.desc:test long Array Concat short Array
138 * @tc.type: FUNC
139 */
140{
141    let arr2 = new Array(10);
142    arr2[1] = 3;
143    arr2[2] = 2;
144    arr2[3] = "ab";
145    arr2[4] = 1;
146    let arr3 = new Array(2000);
147    let arr4 = arr3.concat(arr2);
148    print(arr4[2000], arr4[2001], arr4[2002], arr4[2003], arr4[2004]);
149}
150
151/*
152 * @tc.name:Array concat6
153 * @tc.desc:test short Array Concat long Array
154 * @tc.type: FUNC
155 */
156{
157    let arr2 = new Array(2000);
158    arr2[1] = 3;
159    arr2[2] = 2;
160    arr2[3] = "ab";
161    arr2[4] = 1;
162    let arr3 = new Array(10);
163    let arr4 = arr3.concat(arr2);
164    print(arr4[10], arr4[11], arr4[12], arr4[13], arr4[14]);
165}
166
167/*
168 * @tc.name:Array concat7
169 * @tc.desc:test long Array Concat long Array change origin prototype
170 * @tc.type: FUNC
171 */
172{
173    let arr2 = new Array(2000);
174    arr2.__proto__[0] = "??";
175    arr2[1] = 3;
176    arr2[2] = 2;
177    arr2[3] = "ab";
178    arr2[4] = 1;
179    let arr3 = new Array(2000);
180    let arr4 = arr3.concat(arr2);
181    print(arr4[0], arr4[2000], arr4[2001], arr4[2002], arr4[2003], arr4[2004]);
182}
183
184print("test arrayconcat success!");
185
186print("proxy defineproperty success!");
187const v1 = [1, 2, "j", 9999, , 23];
188const v2 = ["sss", 2, "j", , , ,"test"];
189print(v1.concat(v2));
190
191let v3 = new Array();
192v3.push('foo');
193var v4 = ['bar'];
194var v5 = v3.concat(v4);
195print(v5);