前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【前端芝士树】Array的属性及方法整理(参照MDN)

【前端芝士树】Array的属性及方法整理(参照MDN)

作者头像
CloudCat
发布2019-05-26 21:19:30
4220
发布2019-05-26 21:19:30
举报

本文主要是我自己对Array的一些整理,参考自MDN,其中的分类有些不准确之处,还望见谅

Array

const arr = ["1", "2", "3", "four", "hello"];
let arrObj = new Array();

Array的基本属性

// 属性
console.log(arr.length); //5
console.log(arr.__proto__);

Array的一些方法

Array 增删改查 && 基础功能

/**
 * 增删改查 && 基础功能
 */
// 增删改
arr.shift(); //删除数组的第一个元素
arr.pop(); //删除数组的最后一个元素
arr.unshift(); //在数组的开头一个或多个元素,
arr.push(); //在数组的末尾增加一个或者多个元素
[1, 2, 3].concat([6, 7, 8]); //数组合并 [1,2,3,6,7,8]
[1, 2, 3, 4, 5].copyWithin(0, 1, 2); // 浅复制一部分,[2,2,3,4,5], arr.copyWithin(target[, start[, end]])
// splice(start, deleteCount, item) 删除或者替换现有元素,返回被修改或者删除的部分
[1, 2, 3].splice(1, 0, "hello"); // [] 原数组变成了[1, 'hello', 2, 3]

// 查找
[1, 2, 3, 4, 5, 6].find(item => item > 3); // 返回复合条件的第一个值 4
[1, 2, 3, 4, 5, 6].findIndex(item => item > 3); // 返回复合条件的第一个值的位置索引 3
[1, 2, 3, 4, 5, 6].includes(3); // 判断数组是否包含一个指定的值 true
[1, 2, 3, 4, 5, 6].includes(7); // false
[1, 2, 3, 4, 5, 6].indexOf(3); // 判断数组是否包含一个指定的值 2
[1, 2, 3, 4, 5, 6].indexOf(7); // -1
[1, 2, 3, 4, 5, 6].lastIndexOf(3); // 从后往前找 2
[1, 2, 3, 4, 5, 6].lastIndexOf(7); // -1

Array 遍历

// 遍历所有的元素
[1, 2, 3, 4, 5, 6].forEach(item => console.log(item)); //1,2,3,4,5,6

// 填充数组
[1, 2, 3, 4, 5, 6].fill(0, 1); //[1, 0, 0, 0, 0, 0]
[1, 2, 3, 4, 5, 6].fill(); //[0, 0, 0, 0, 0, 0]

// 过滤数组
[1, 2, 3, 4, 5, 6].filter(item => {
  return item > 3;
}); // [4,5,6]

// 排序 原地归并算法 稳定 nlog(n)
[1, 3, 4, 2].sort(); // 默认从小到大 [1, 2, 3, 4]

Array 测试

/**
 * 测试
 */
[1, 30, 39, 29, 10, 13].every(currentValue => {
  return currentValue < 40;
}); // arr.every() 测试数组的所有元素是否是通过了指定函数 true
[1, 30, 39, 29, 10, 13].some(curr => curr < 2); // 测试是否至少有一个元素通过测试 true

Array 转换 && 返回新的对象

/**
 * 转换 && 返回新的对象
 */
[1, 2, 3, 4, 5, 6].join("-"); // 数组转为字符串 "1-2-3-4-5-6"
[1, 2, 3].toString(); // 转换为字符串,相当于join(','); "1,2,3"
[1, 2, 3].map(item => item * 2); // 映射器 [2, 4, 6]
[1, 2, 3].reduce((acc, curr) => {
  return acc + curr;
}); // 累加器 从左到右 6
[1, 2, 3].reverse(); // 翻转数组 [3, 2, 1]
[1, 2, 3].slice(1, 2); // 从原数组中选取值,返回新数组 slice(begin, end) [2]
const keys = ["a", "b", "c"].keys(); // 返回每个索引键的 Array Iterator {} 对象
for (let key of keys) {
  console.log(key); // expected output: 0 1 2
} // 0 1 2
const values = ["a", "b", "c"].values(); // 返回每个索引键的 Array Iterator {} 对象
for (const value of values) {
  console.log(value); // expected output: "a" "b" "c"
}

Array 实验中的功能 && 其他

/**
 * 实验中的功能 IE和Edge不支持
 *  */
// flat(depth) 展开嵌套数组
[1, 2, [3, 4, [5, 6]]].flat(); // [1, 2, 3, 4, [5, 6]]
[1, 2, [3, 4, [5, 6]]].flat(2); // [1, 2, 3, 4, 5, 6]
[1, 2, [3, 4, [5, 6]]].flat(Infinity); // [1, 2, 3, 4, 5, 6]

// 其他
const arr2 = Array.of(1, 2, 3); // [1,2,3]

const iter = ["a", "b", "c"].entries(); // 返回一个Array Iterator
iter.next().value; // [0, "a"]
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Array
    • Array的基本属性
      • Array的一些方法
        • Array 增删改查 && 基础功能
        • Array 遍历
        • Array 测试
        • Array 转换 && 返回新的对象
        • Array 实验中的功能 && 其他
    相关产品与服务
    腾讯云服务器利旧
    云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档