JavaScript数组采坑

长度

JS 数组长度不是里面包含了多少个元素,为数组中元素最大索引加一


const arr = [];

arr[20] = 1;

console.log(arr.length) // log: 21
console.log(arr[0]) // log: undefine

// 可使用 数组的length属性去清空元素
let arr1 = [1, 2, 3, 4, 5, 6, 7];

// 保留四个元素
arr1.length = 4;
console.log(arr1) // log: [ 1, 2, 3, 4 ]

// 清空数组
arr1.length = 0;
console.log(arr1); // log: []

遍历

使用 for…in 和 forEach() 遍历都会跳过空元素(undefine)
使用 for…of 和 for 遍历,依然会遍历空元素


let arr = [1, 2];

arr[5] = 5;

for(let i = 0; i < arr.length; i++) {
  console.log(arr[i]);  
}
// log: 1 2 undefine undefine undefine 10

for(let site of arr) {
  console.log(site)
}
// log: 1 2 undefine undefine undefine 10

for(let key in arr) {
  console.log(arr[key]);
}
// log: 1 2 5

arr.forEach(value => {
  console.log(value);
})
// log: 1 2 5

关于数组的计算属性

const arr = [];
arr[0] = 0;
arr[1] = 1;
arr[2] = 2;

// 数组计算属性的用法
arr["property" + "1"] = "数组的计算属性";

// 可以通过属性名得到数组值
console.log(arr.property1); // log:数组的计算属性

// 当你给你的数组加了一个计算属性后,再用for...in 来遍历数组
for(let index in arr) {
  console.log(arr[index]);
}
// log: 0 1 2 3 数组的计算属性

// 再看看数组的长度
console.log(arr.length); // log: 3

不要使用 === 去判断数组相等,或判断否空数组

记住,数组也是对象

const arr= []

// 全等时
console.log(arr === []); // log: false
console.log(arr === 0); // log: false
console.log([1] === [1]) // log: false

// 使用相等时
console.log(arr == 0) // log: true 
console.log(arr == '') // log: true 
console.log(arr == []) // log: false
console.log(arr == null) // log: false
console.log([1] == [1]) // log: false
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值