* Copyright (c) 2023 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
* @tc.name:arrayforeach
* @tc.desc:test Array.forEach
* @tc.type: FUNC
* @tc.require: issueI69HXO
*/
let func = (item, index) => `${index}_${JSON.stringify(item)}`;
let array1 = [1, 2, 3, 4, 5];
array1.forEach((item, index) => {
print(func(item, index));
});
let array2 = [1, 2, 3, 4];
array2.forEach((item, index) => {
array2.pop();
print(func(item, index));
});
let array3 = new Array(10);
array3.forEach((item, index) => {
func(item, index);
});
print("test arrayforeach success!!!");
let array4 = new Array(1024);
array4.forEach((item, index) => {
func(item, index);
});
print("test arrayforeach success!!!");
try {
[].forEach(1.1);
} catch (e) {
print("CallbackFn is not callable")
}
var callCnt1 = 0;
function callbackfn1(val, idx, obj)
{
callCnt1++;
}
print(callCnt1)
var arr1 = [1, 2, , 4, 5];
arr1.forEach(callbackfn1);
var callCnt2 = 0;
function callbackfn2(val, idx, obj)
{
arr2[1000] = 3;
callCnt2++;
}
var arr2 = new Array(10);
arr2[1] = 1;
arr2[2] = 2;
arr2.forEach(callbackfn2);
print(callCnt2)
var callCnt3 = 0;
function callbackfn3(val, idx, obj)
{
callCnt3++;
}
var arr3 = new Array(10);
arr3[1] = undefined;
arr3.forEach(callbackfn3);
print(callCnt3)
{
let arr = [];
arr[0] = {}
arr[2] = 0
arr.forEach((elem) => {
elem[0] = 0;
arr.pop();
})
print("success")
}
{
let arr = new Array(5)
arr.fill(1);
arr.forEach((elem, idx) => {
print(idx)
if (idx == 2) {
delete arr[3]
}
})
}