当前位置: 首页 > news >正文

JavaScript Array 的方法 (笔记)

Array.prototype.filter()

返回一个新的数组对象包含原对象中满足回调函数里判断条件的所有数据。

let words = ['spray', 'limit', 'elite', 'exuberant', 'destruction', 'present'];

let result = words.filter(word => word.length > 6);

console.log(result); // Array ["exuberant", "destruction", "present"]
复制代码

Array.prototype.map()

迭代数组,返回操作后的值。

let array1 = [1, 4, 9, 16];

let map1 = array1.map(x => x * 2);

console.log(map1); // Array [2, 8, 18, 32]
复制代码

Array.prototype.sort()

默认把元素转换为字符串,然后比较它们 UTF-16 的值进行排序。

let months = ['March', 'Jan', 'Feb', 'Dec'];
months.sort();
console.log(months); // Array ["Dec", "Feb", "Jan", "March"]

let array1 = [1, 30, 4, 21];
array1.sort();
console.log(array1); // Array [1, 21, 30, 4]
复制代码

compare function - 传入 sort 的函数,决定排序的顺序。

  1. 如果返回的值小于0,a 的下标小于 b 的下标,a 在 b 前面。
  2. 如果返回的值大于0,a 的下标大于 b 的下标,a 在 b 后面。
  3. 如果返回的值等于0,顺序不变。
function compare(a, b) {
  if (a < b) return -1;
  
  if (a > b) return 1;
  
  // a == b
  return 0;
}
复制代码

数字排序

let numbers = [4, 2, 5, 1, 3];
numbers.sort((a, b) => a - b);
console.log(numbers); // [1, 2, 3, 4, 5]
复制代码

字符串排序

let arr = ['Edward', 'Shargpe', 'And', 'The', 'Magnetic', 'Zeros'];

arr.sort((a, b) => {
  let tempa = a.toUpperCase();
  let tempb = b.toUpperCase();
  if (tempa < tempb) return -1;
  if (tempa > tempb) return 1;
  return 0;
});

复制代码

Array.prototype.reduce()

reduce() 方法会执行回调函数对每一个数据进行处理然后返回一个统一的结果。

// 返回数组所有数字的和
let sum = [0, 1, 2, 3].reduce((accumulator, currentValue) => {
  return accumulator + currentValue;
}, 0);
复制代码

Array.prototype.some()

some() 方法和 filter() 有点类似,只是返回的是个 boolean 值。测试是否至少有一个元素能通过测试。

Array.prototype.every()

测试是否所有元素通过测试。

Array.prototype.find()

查询并返回第一个满足条件的元素。

Array.prototype.findIndex()

查询并返回第一个满足条件的元素的下标。

转载于:https://juejin.im/post/5c3e9f84f265da61141cd4e8

相关文章:

  • python的抽象编程思想
  • YY的GCD
  • 哈希 --- 线性探测法
  • 百度的疯狂 UC的隐忍
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • 新的一年,来看看大数据与AI的未来展望
  • daemontools 监控进程
  • 【跃迁之路】【699天】程序员高效学习方法论探索系列(实验阶段456-2019.1.19)...
  • select的使用(一)
  • LeeCode 14. 最长公共前缀
  • struts2 中的 addActionError 、addFieldError、addAction
  • 广西苗乡民众与游人“打同年”庆祝苗年
  • 网站验证码突然无法显示
  • [leetcode]Search a 2D Matrix @ Python
  • 雷军亲自打造的套餐了解下:用多少付多少
  • [nginx文档翻译系列] 控制nginx
  • [数据结构]链表的实现在PHP中
  • [译]CSS 居中(Center)方法大合集
  • Babel配置的不完全指南
  • ES6, React, Redux, Webpack写的一个爬 GitHub 的网页
  • EventListener原理
  • JavaScript实现分页效果
  • java取消线程实例
  • SpiderData 2019年2月16日 DApp数据排行榜
  • SSH 免密登录
  • Vue2.x学习三:事件处理生命周期钩子
  • vue总结
  • 大数据与云计算学习:数据分析(二)
  • 基于组件的设计工作流与界面抽象
  • 开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
  • 面试遇到的一些题
  • 如何编写一个可升级的智能合约
  • 如何借助 NoSQL 提高 JPA 应用性能
  • 如何利用MongoDB打造TOP榜小程序
  • 线上 python http server profile 实践
  • 哈罗单车融资几十亿元,蚂蚁金服与春华资本加持 ...
  • ​软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】​
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • !!java web学习笔记(一到五)
  • #ifdef 的技巧用法
  • #mysql 8.0 踩坑日记
  • $jQuery 重写Alert样式方法
  • (1) caustics\
  • (Matalb时序预测)PSO-BP粒子群算法优化BP神经网络的多维时序回归预测
  • (poj1.3.2)1791(构造法模拟)
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (分布式缓存)Redis哨兵
  • (四)Tiki-taka算法(TTA)求解无人机三维路径规划研究(MATLAB)
  • (转)jQuery 基础
  • .[hudsonL@cock.li].mkp勒索加密数据库完美恢复---惜分飞
  • .bat批处理(十一):替换字符串中包含百分号%的子串
  • .mysql secret在哪_MYSQL基本操作(上)
  • .NET MVC、 WebAPI、 WebService【ws】、NVVM、WCF、Remoting
  • .netcore 如何获取系统中所有session_如何把百度推广中获取的线索(基木鱼,电话,百度商桥等)同步到企业微信或者企业CRM等企业营销系统中...
  • .NET开源项目介绍及资源推荐:数据持久层