借鉴作者:JavaScript数组的使用小结(详细还是去看MDN) - 掘金

借鉴作者:JS之数组的几个不low操作 - 掘金

1、将两个数组组合成一个升序数组(concat、sort)

(1)concat() 方法用于连接两个或多个数组,或者是具体的值

(2)sort() 方法用于对数组的元素进行排序,sort调用的是一个函数,函数可以传入两个变量(a,b),其返回值如下

  • 若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
  • 若 a 等于 b,则返回 0。
  • 若 a 大于 b,则返回一个大于 0 的值。
var a = [1, 2, 6]
var b = [4, 2, 7]
var c = a.concat(b)
console.log(c) // [1, 2, 6, 4, 2, 7]function aruduce (x, y) {return x - y
}
c.sort(aruduce) // [1, 2, 2, 4, 6, 7]// 排序简洁版本
[1,2,3,4].sort((a, b) => a - b); // [1, 2,3,4],默认是升序
[1,2,3,4].sort((a, b) => b - a); // [4,3,2,1] 降序

2、数组去重

(1)indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置

var res = [1,2,3,3,4,5,5,6,6,7,7,8]
var ad = res.filter((item, index, self) => {return self.indexOf(item) === index
})
console.log(ad) // [1, 2, 3, 4, 5, 6, 7, 8]

(2)第二种方式 new Set方式

var arr = [ 'a', 'a' ,'b', 'c', 'abc']
var result = [ ...new Set(arr) ]
console.log(result)
VM187:3 (4) ["a", "b", "c", "abc"]

3、求两个数组的交集

(1)indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置

var a = [1,2,3,4,5,6,7,7,7,7]
var b = [1,0,9,8,7,6]
var c = []
a.forEach((item,index) => {if (b.indexOf(item) !== -1) {c.push(item)}
})
console.log(c) // [1, 6, 7, 7, 7, 7]

4、求最大值最小值(可以把this换成null,求最小值的时候把max换成min)

// 方法一
var one = [1,2,3,4,5,6,7,2,1,4]
Math.max.apply(this, one) // 7// 方法二
var one = [1,2,3,4,5,6,7,2,1,4]
Math.max(...one)  // 7

5、数组的合并

// 方法一
var a = [1,1,2,4]
var b = [5,6,7]
b.map(item => {console.log(item)a.push(item)
})
console.log(a) // [1, 1, 2, 4, 5, 6, 7]// 方法二
[1,2,3,4].concat([5,6]) //[1,2,3,4,5,6]// 方法三
[...[1,2,3,4],...[4,5]] //[1,2,3,4,5,6]

6、判断是否包含指 ,其中includes(),find(),findIndex()是ES6的api

// 1  includes 存在的话返回true;不包含返回false
[1,2,3].includes(4) // false// 2  indexOf  存在的话返回索引;不存在返回-1
[1,2,3].indexOf(4) // -1// 3  find  存在的话返回具体的值;不存在返回undefined
[1, 2, 3].find((item)=>{return item===3}) // 3// 4  findIndex  存在的话返回对应的索引;不存在返回-1
[1, 2, 3].findIndex((item)=>{return item===3}) // 2

7、三个数组求交集

var ArrFun = function (array1,array2,array3){let newArr = []// 求交集只需要遍历一个数组就行array1.forEach((element)=>{// 找到返回数据,找不到返回undefinedlet newAr2 = array2.find(item => item === element)let newAr3 = array3.find(item => item === element)if(newAr2 && newAr3) newArr.push(element)})return newArr
}
ArrFun([1,5,3,4,2],[1,2,5,7,9],[1,3,4,5,8])  // [1,5]

JS常见的逻辑题目操作(常见面试逻辑题)相关推荐

  1. 链表python笔试题目_python经典面试算法题1.4:如何对链表进行重新排序

    本题目摘自<Python程序员面试算法宝典>,我会每天做一道这本书上的题目,并分享出来,统一放在我博客内,收集在一个分类中. 1.4 对链表按照如下要求重新排序 [微软笔试题] 难度系数: ...

  2. 初中信息技术面试计算机网络,2019下半年中学信息技术教师资格面试真题完整版...

    以下是希赛网教师资格频道为广大考生整理的2019下半年中学信息技术教师资格面试真题完整版,只有 通过多做真题才能更好的把握考试出题的规律,才能找到做题的感觉,到了真正上考场的时候才不会慌 .看看这些真 ...

  3. 2022年通信工程专业保研:从四非到浙大工院夏令营面试经验分享(前期准备篇/含通信原理面试真题)

    一.个人简介 个人情况:本科四非通信工程专业,排名1/170,CET6(480+),二区SCI论文1篇,主持国家级大创1项,互联网+.挑战杯.节能减排.数学建模竞赛均获国奖 夏令营offer:南开.山 ...

  4. 练习总结sql面试50题(2021-12-27完结)

    参考 [数据分析]- SQL面试50题 - 跟我一起打怪升级 一起成为数据科学家_哔哩哔哩_bilibili 图解SQL面试题:经典50题 - 知乎 sql面试题:topN问题 sql 分组查询 分组 ...

  5. 重启开源,分享无限--微软面试187题精选

    重启开源,分享无限--诚邀你加入微软面试187题的解题中 前期回顾 我想,只要是稍微浏览过我博客的朋友都知道,本博客内总体上大致分为两个部分的内容:1.算法(如十六个经典算法研究系列):2.面试与编程 ...

  6. 力扣高频算法php_互联网公司最常见的面试算法题有哪些?

    很多时候,你即使提前复习了这些最常见的面试算法题,你依旧无法通过算法面试! 为什么?你在提前准备复习的时候,在网上找了半天相应题目的分析文章,但你看了就是不懂. 你在面试的时候,卡壳了,一时间忘了怎么 ...

  7. 面经——C/C++常见面试知识点总结附面试真题

    参考:C/C++ 面试题 作者:zhaouc 发布时间: 2015-02-15 15:51:00 网址:https://blog.csdn.net/zhaouc/article/details/438 ...

  8. 互联网公司最常见的面试算法题大集合!

      转载于 新智元   来源:Github 编辑:元子 [导读]LeetCode是一个美国的在线编程网站,收集了各个大厂的笔试面试题,对找工作的毕业生和开发者来说,非常有价值.很多求职者都会在Leet ...

  9. 常见的压力面试题及面试技巧

    常见的压力面试题及面试技巧 概述 压力面试(stress interview)是指有意制造紧张,以了解求职者将如何面对工作压力.面试人通过提出生硬的.不礼貌的问题故意使候选人感到不舒服,针对某一事项或 ...

  10. 常见的面试算法题:创建几个线程按顺序打印数字或者字母(多线程编程)(套用该模板即可)

    常见的面试算法题:创建几个线程按顺序打印数字或者字母(多线程编程)(套用该模板即可) 比较典型的题目,如下有: 题目一: 1.启动3个线程打印递增的数字, 线程1先打印1,2,3,4,5, 然后是线程 ...

最新文章

  1. Linux aptget 参数,ubuntu下apt-get 命令参数大全
  2. 题解报告:hdu 5695 Gym Class(拓扑排序)
  3. 手机常用分页加载loading框
  4. 《c专家编程》笔记--define和typedef的区别
  5. DOM-3 【utils/待讲评】节点属性、方法、封装方法、DOM结构
  6. 手机 html 折叠效果,HTML5仿苹果手机的面板合拢折叠效果
  7. php mysql服务器配置_PHPMYSQL服务器配置说明_PHP
  8. airflow部署和使用示例
  9. 关于VM安装Linux系统成功后无法连接WIFI
  10. 老罗Android开发视频教程 打包下载地址,收集起来,给大家下载
  11. java解析json list
  12. zotero中的标准和规范应该用什么类型
  13. Deeplink最全解析
  14. IBM、Google、Oracle三巨头的公有云之殇(上)
  15. 论文:Object-centric Auto-encoders and Dummy Anomalies for Abnormal Event Detection in Video阅读遇到的问题及解答
  16. 如何制作人脸微笑检测程序
  17. 友元函数实现复数加减法
  18. java键盘监听延迟_解决JAVA键盘监听的延迟现象以及八个方向的运动
  19. 查看电脑内存个数、主频(工作频率)、容量、位宽等的方法总结
  20. 便携设备:小终端激起大变局

热门文章

  1. OpenVN客户端添加路由配置(流量分流)
  2. python爬取凤凰新闻_Python爬虫实践(9)--爬取凤凰网汽车资讯
  3. cisco路由器模式
  4. oracle怎么删除.dat,oracle 手工删库
  5. 鲁大师软件测试在哪,鲁大师测网速(鲁大师网速测试在哪里)
  6. windows server2012 安装网卡驱动
  7. 这些年的项目管理心得
  8. CSS 代码语法 代码注释
  9. JavaScript 开发者的 5 款必备工具
  10. 将Windows上的鼠标指针主题移植到Linux上