js常用的数组方法

js常用的数组方法

1.filter() 不会改变原始数组,新数组中的元素是过滤指定数组中符合条件的所有元素

两种写法区别:有return 的加了{},否则没有return不需要加{}

var aa = [1, 2, 3, 4, 4, 5, 6, 6];

var bb = aa.filter((item, index, self) => {

  return self.indexOf(item) === index     // indexOf找到数组中第一个符合条件的元素位置,没找到指定元素则返回 -1

})

console.log(bb);  //  [1, 2, 3, 4, 5, 6]

 

var aa = [1, 2, 3, 4, 4, 5, 6, 6];

var bb = aa.filter((item, index, self) =>

  self.indexOf(item) === index

)

console.log(bb); //  [1, 2, 3, 4, 5, 6]

 

ES6数组去重写法:

var arr = [1, 2, 3, 4, 4, 5, 6, 6];
var set = new Set(arr);
var newArr = Array.from(set);
console.log(newArr); // [1, 2, 3, 4, 5,6]

 

2.map() 不会改变原始数组,新数组中的元素为按原始数组顺序依次处理元素后的值,同样有两种写法

var aa = [1, 2, 3, 4, 4, 5, 6, 6];

var bb = aa.map((item) => {

  return item = item * item

})

console.log(bb); //  [1, 4, 9, 16, 16, 25, 36, 36]

 

3.every() 不会改变原始数组,检测数组所有元素是否都符合指定条件,全部通过返回true,否则返回false(所有项满足返回true)

  • 如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测
  • 如果所有元素都满足条件,则返回 true

var aa = [1, 2, 3, 4, 4, 5, 6, 6];

var bb = aa.every((item) => {

  return item != 3

})

console.log(bb); //  false

 

4.some() 不会改变原始数组,检测数组中的元素是否满足指定条件,只要有一个通过返回true,否则返回false(只要一项满足返回true)

  • 如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测
  • 如果没有满足条件的元素,则返回false

var aa = [1, 2, 3, 4, 4, 5, 6, 6];

var bb = aa.some((item) => {

  return item != 3

})

console.log(bb); // true

 

5.findIndex() 不改变原始数组,找到符合条件的数组第一个元素位置

  • 当数组中的元素在测试条件时返回 true 时, findIndex() 返回符合条件的元素的索引位置,之后的值不会再调用执行函数
  • 如果没有符合条件的元素返回 -1

var aa = [1, 2, 4, 4, 5];

var bb = aa.findIndex(item => {

  return item > 3

});

console.log(bb); // 2

 

6.find()不改变原始数组,找到符合条件的数组的第一个元素的值

  • 当数组中的元素在测试条件时返回 true 时, find() 返回符合条件的元素,之后的值不会再调用执行函数
  • 如果没有符合条件的元素返回 undefined

var aa = [1, 2, 4, 4, 5];

var bb = aa.find(item => {

  return item > 3

});

console.log(bb); // 4

 

7. slice() 不会改变原始数组,从已有的数组中返回选定的元素,截取组成新字符串(数组截取)

var aa = [1, 2, 3, 4, 4, 5, 6, 6];

var bb = aa.slice(2,4)

console.log(bb); // [3, 4]

 

8.splice() 改变原始数组,用于添加或删除数组中的元素(数组更新)

第一个元素是从何处添加/删除元素,第二个元素是删除多少元素,第三个元素(不必填)是要添加到数组的新元素

var aa = [1, 2, 3, 4, 4, 5, 6, 6];

aa.splice(3,4,2)   // 从第3位开始删除4个元素,并把2添加进删除的位置

console.log(aa); //[1, 2, 3, 2, 6]

 

9.join()不改变原数组,数组转字符串

var aa = [1, 2, 3, 4, 4, 5, 6, 6];

var bb = aa.join()

console.log(bb); // 1,2,3,4,4,5,6,6

 

10. split()不改变原字符串,字符串变数组

var aa = '1,2,3,4,4,5,6,6';

var bb = aa.split(',')

console.log(bb); // ["1", "2", "3", "4", "4", "5", "6", "6"]

 

11. 遍历数组方法 keys()、values()、entries()

keys()是对键名的遍历

let aa = ["a", "b", "c", "d"];

for (let index of aa.keys()) {

  console.log(index);

}

values()对键值的遍历

let bb = ["a", "b", "c", "d"];

for (let item of bb.values()) {

  console.log(item);

}

entries()是对键值对的遍历

let arr = ["a", "b", "c", "d"];

for (let i of arr.entries()) {

  console.log(i);

}

for (let [index, item] of arr.entries()) {

  console.log(index + ":" + item);

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/247500.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

iOS 适配HTTPS方法

一切为了迎合苹果 在WWDC 2016开发者大会上,苹果宣布了一个最后期限:到2017年1月1日 App Store中的所有应用都必须启用 App Transport Security安全功能。App Transport Security(ATS)是苹果在iOS 9中引入的一项隐私保护功能&…

模板—tarjan求割边

int dfn[MAXN],low[MAXN],cnt; void tarjan(int x,int edg) {low[x]dfn[x]cnt;for(int if(x);i;in(i))if(!dfn[v(i)]){tarjan(v(i),i);low[x]min(low[x],low[v(i)]);if(low[v(i)]>dfn[x])isbridge[i]isbridge[i^1]1;}else if(i!(edg^1))low[x]min(low[x],dfn(v(i))); } 转载…

GoJs Pictures 官方介绍文档

图片 使用Picture类显示图像。 最常见的用法是使用URL字符串设置Picture.source属性,以及通过GraphObject.desiredSize(图对象的所需尺寸)获取或通过设置GraphObject.width(图对象的宽)和GraphObject.height&#xff0…

怎样购买及安装ssl安全证书

查找资料记录,不是我的项目笔记 现在越来越多的网站都开始用安全链接了,在国外的话,如果不是一个安全链接,用户很大程度上会拒绝使用,所有安全链接是未来的趋势,楼主第一次配安全证书的时候,刚刚…

XmlViewResolver 和 ResourceBundleViewResolver

使用XmlViewResolver 如果视图对象的 Bean 数目太多,那么直接在 smart-servlet.xml 文件中配置,势必影响主配置文件的简洁性。XmlViewResolver 和 BeanNameViewResolver 功能相似,唯一不同的是它可以将视图 Bean 定义在一个独立的 XML 文件中…

(转载)Git使用教程:最详细、最傻瓜、最浅显、真正手把手教!

转载自 Git使用教程 预警:因为详细,所以行文有些长,新手边看边操作效果出乎你的预料)一:Git是什么? Git是目前世界上最先进的分布式版本控制系统。 工作原理 / 流程: Workspace:工作…

soureTree中如何设置git 用户名与密码 SourceTree提交修改用户详细图文方法

mac上软件更新: 现在没有网络小模块了,在同行右边高级里面有默认用户名删除即可!!!! sourceTree 切换Git登录用户,之前在SourceTree提交远程服务用的是同事的账号,同事离职后账号也…

shell 脚本 生成文件,文件名为日期时间

脚本如下 #/bin/bashfilename$(date %Y%m%d)_$(date %H%M%S) touch $filename.txt 其中 $() 表示括号中的 shell 命令的结果,所以 filename 是一个字符串,比如 20190714_111631,即 2019 年 7 月 14 日 11 点 16 分 31 秒。 然后第二行命令&am…

js利用HTML5的拖拽API做流程图

上代码 直接用看效果&#xff0c;学习一下 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Document</title><style type"text/css">#d1{width:800px;height:800px;border: 1…

Pots (BFS ➕ 输出路径)

题目链接&#xff1a;http://poj.org/problem?id3414 思路&#xff1a; 因为有六种操作&#xff0c;所以六种操作中合法的都加入队列中BFS 如何去输出路径呢&#xff1f; 我们不妨设一个string数组&#xff0c;它的索引就和我们的步数有关&#xff0c;然后按顺序输出就可以了…

box-sizing的使用

box-sizing 人们慢慢的意识到传统的盒子模型不直接&#xff0c;所以他们新增了一个叫做 box-sizing 的CSS属性。当你设置一个元素为 box-sizing: border-box; 时&#xff0c;此元素的内边距和边框不再会增加它的宽度。这里有一个与前一页相同的例子&#xff0c;唯一的区别是两…

vue-router的hash模式和history模式,

hash模式背后的原理是onhashchange事件,可以在window对象上监听这个事件: window.onhashchange function(event){ console.log(event.oldURL, event.newURL); let hash location.hash.slice(1); document.body.style.color hash; } 上面的代码可以通过改变hash来改变页面字体…

更新node最新版本方法和 npm install -g n 运行错误

使用xshell连接linux服务器后&#xff0c;首先输入node -v查看当前使用的版本 如果上面查看的版本比较低&#xff0c;则可以开始升级 清除npm cache 升级之前还需要安装n模块&#xff0c;n模块是专门用来管理nodejs的版本 输入npm install -g n n模块安装完成之后&#x…

vue-router的路由

路由和组件是有区别的&#xff1a;组件一般是在同一个页面的不同模块&#xff0c;但是路由是直接切换到另一个页面&#xff0c;之前的页面销毁。 App.vue中的router-view会渲染顶级路由匹配到的组件。组件内部嵌套的router-view会渲染子路由匹配到的组件。 当路由跳转的时候&am…

mac上的更新node npm

查看当前node版本 $ node -v v8.9.4 清除node.js的cache(不确定有没有必要) $ sudo npm cache clean -f Password: npm WARN using --force I sure hope you know what you are doing. 安装工具n &#xff0c;这个工具是专门用来管理node.js版本的 $ sudo npm install -g …

电源芯片选择DC/DC还是LDO?《转》

这个取决于你的应用场合。比如用在升压场合&#xff0c;当然只能用DC/DC&#xff0c;因为LDO是压降型&#xff0c;不能升压。另外看下各自的主要特点&#xff1a; DC/DC:效率高&#xff0c;噪声大&#xff1b; LDO:噪声低&#xff0c;静态电流小&#xff1b; 所以如果是用在压降…

Atom React或前端插件推荐

分享一些Atom个人在用的插件,喜欢请点赞 1. color-picker 取色工具 2. pigments 编辑器中直接查看代码所代表的颜色&#xff0c;工具虽小但是很实用。 3. minimap 仿sublime text的缩略代码查看&#xff0c;想找的地方一目了然。 4. highlight-selected 选择某段代码自动高…

Nike Kyrie 1 Performance Review

Traction – There has been many varying opinions on the Kyrie 1’s traction, and I don’t think any of them have been wrong. I’d say under the right conditions, the traction is excellent. I’ve experienced nothing but great traction out of them, but all o…

Tapable.plugin is deprecated. Use new API on `.hooks` instead

问题描述 在使用extract-text-webpack-plugin给webpack打包时出现报错 Tapable.plugin is deprecated. Use new API on .hooks instead 1 问题原因 extract-text-webpack-plugin目前版本不支持webpack4。 解决方案 使用extract-text-webpack-plugin的最新的beta版 npm inst…

第二周进度总结

本周主要在完成假期作业&#xff0c;学习的时间大部分花在代码上。完成了3个代码的编译。第一个是害死人不偿命的(3n1)猜想。第二个是成绩排名&#xff08;输出成绩最高和成绩最低学生的姓名和学号&#xff09;。第三个是换个格式来输出任一个不超过 3 位的正整数。这三个题目中…