ES7:Array.prototype.includes()、幂运算符

2024-03-17 16:18

本文主要是介绍ES7:Array.prototype.includes()、幂运算符,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Array.prototype.includes()

  • Array.prototype.includes() 方法用来判断一个数组是否包含一个指定的值,如果包含则返回 true,否则返回 false
const arr = ['es6', 'es7', 'es8']
console.log(arr.includes('es6')) // true
console.log(arr.includes('es9')) // false
  •  接收俩个参数,要搜索的值和开始搜索的索引
  • 第二个参数可选,如果为负值,和数组长度相加确定位置
const arr = ['es6', 'es7', 'es8']
console.log(arr.includes('es7', 1)) // true
console.log(arr.includes('es7', 2)) // false
console.log(arr.includes('es7', -1)) // false
console.log(arr.includes('es7', -2)) // true

Array.prototype.includes() 与 Array.prototype.indexOf() 比较

  • includes() 返回 boolean 类型,indexOf() 返回索引位置
['a', 'b', 'c'].includes('a') //true
['a', 'b', 'c'].indexOf('a') > -1 //trueconsole.log(arr.indexOf('es7')) // 1
console.log(arr.indexOf('es7') > -1) // true
  • includes() 和 indexOf() 只能判断基本数据类型,对于复杂数据类型无法判断
const arr = [1, [2, 3], 4]
arr.includes([2, 3]) //false
arr.indexOf([2, 3]) //-1
  • 两者都是采用全等(===)操作符作比较
  • 不同之处在于对 NaN 处理结果不同,JS 中 NaN === NaN 返回 false, indexOf() 也是这样处理,但是 includes() 返回 true
const demo = [1, NaN, 2, 3]
demo.indexOf(NaN) //-1
demo.includes(NaN) //true

总结

  • 如果只想知道某个值是否在数组中存在,而不关心它的索引位置,建议使用 includes() 方法
  • 如果想获取一个值在数组中的位置,那么只能使用 indexOf() 方法

补充

  • ES7 之前想判断数组中是否包含一个元素,可以这样写
// 方法一:find()
const arr = [1, 2, 3]
const res = arr.find(item => {return item === 2
})
console.log(res) // 2
  • Array.prototype.find() 返回数组中满足条件的第一个数组元素值。否则返回 undefined
  • Array.prototype.findIndex() 返回数组中满足条件的第一个数组元素索引。否则返回 -1
// 方法二
const arr = [1, 2, 3]
const res = arr.filter(item => {return item > 1
})
console.log(res) // [2, 3]
  • Array.prototype.filter() 返回满足条件数组项,组成一个新数组返回

幂运算符 **

  • 注:幂运算符之间不能有空格
// ES7 写法
console.log(2 ** 10)// 也可以使用 Math.pow()
console.log(Math.pow(2, 10))

这篇关于ES7:Array.prototype.includes()、幂运算符的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/819472

相关文章

【重学 MySQL】十九、位运算符的使用

【重学 MySQL】十九、位运算符的使用 示例检查权限添加权限移除权限 在 MySQL 中,位运算符允许你直接在整数类型的列或表达式上进行位级操作。这些操作对于处理那些需要在二进制表示上进行直接修改或比较的场景特别有用,比如权限管理、状态标记等。 &(位与) 对两个数的二进制表示进行位与操作。只有两个相应的二进制位都为 1 时,结果的该位才为 1,否则为 0。 |(位

C语言程序设计(数据类型、运算符与表达式)

一、C的数据类型 C语言提供的数据类型: 二、常量和变量 2.1常量和符号常量 在程序运行过程中,其值不能被改变的量称为常量。 常量区分为不同的类型: 程序中用#define(预处理器指令)命令行定义变量将代表常量,用一个标识符代表一个常量,称为符合常量。 2.2变量 变量代表内存中具有特定属性的一个存储单元,用来存放数据,在程序运行期间,这些值是可以 改变的。 变

第二十四章 rust中的运算符重载

注意 本系列文章已升级、转移至我的自建站点中,本章原文为:rust中的运算符重载 目录 注意一、前言二、基本使用三、常用运算符四、通用约束 一、前言 C/C++中有运算符重载这一概念,它的目的是让即使含不相干的内容也能通过我们自定义的方法进行运算符操作运算。 比如字符串本身是不能相加的,但由于C++中的String重载了运算符+,所以我们就可以将两个字符串进行相加、但实际

《C++中的移动构造函数与移动赋值运算符:解锁高效编程的最佳实践》

在 C++的编程世界中,移动构造函数和移动赋值运算符是提升程序性能和效率的重要工具。理解并正确运用它们,可以让我们的代码更加高效、简洁和优雅。 一、引言 随着现代软件系统的日益复杂和对性能要求的不断提高,C++程序员需要不断探索新的技术和方法来优化代码。移动构造函数和移动赋值运算符的出现,为解决资源管理和性能优化问题提供了有力的手段。它们允许我们在不进行不必要的复制操作的情况下,高效地转移资源

Java基础--基本运算符介绍

Java运算符 用于指明对于操作数的运算方式。 分类: 按照操作数的数目来进行分类: 单目a++ 双目a+b 三目(a>b)?x:y; 按照运算符的功能来进行分类: 算术运算:+ - * / %(取余)++ – 如: int x=1; x=x+1;//x空间内的值,自己增加了一个 x++;//x空间内的值,自增一个 ++x;//对于x空间内的值来讲都是一致,最终的结果都自

【uva】11536-Smallest Sub-Array(区间移动问题)

一个区间移动的问题,1A了,感觉没什么好说的。。 13975926 11536 Smallest Sub-Array Accepted C++ 0.809 2014-08-01 11:00:20 #include<cstdio>#include<cstring>#include<iostream>using namespace std;#define INF 1 << 30

leetCode#448. Find All Numbers Disappeared in an Array

Description Given an array of integers where 1 ≤ a[i] ≤ n (n = size of array), some elements appear twice and others appear once. Find all the elements of [1, n] inclusive that do not appear in this

【MATLAB】运算符及其优先级

在MATLAB语言中,运算符可以灵活组合以构建更复杂的运算表达式。需要注意的是,与其他高级编程语言类似,MATLAB中的运算符也有优先级。掌握运算优先级有助于我们正确地执行复杂的计算。以下是按照从高到低顺序排列的MATLAB运算符及其优先级列表。 括号 ()。数组的转秩 ( .’ ),数组幂 ( .^ ) ,复转秩 ( ’ ),矩阵幂 ( ^ )。代数正 ( + ),代数负 ( - ),逻辑非

C++ 第7章 运算符重载

7.1 运算符重载规则 7.1.1 重载运算符的限制 可重载运算符: + - * / % ^ & | ~! = < > += -+ *= /= %=^= &= |= << >> >>= <<= == !=<= >= && || ++ -- ->* , ->[] () new delete 不可重载运算符: . .* :: ?: sizeof 重载运算符函数可以对运算符做出新的解

做一个问卷考试,标准答案对比用户填写的答案,array_diff 进行差集比对

if( empty(array_diff($answer_mark, $answer)) && empty(array_diff( $answer,$answer_mark))){//用户答题正确}else{// 答题错误} 做一个问卷考试,标准答案对比用户填写的答案,array_diff  进行差集比对   如用户填写的答案变量为answer   标准答案为answer_mark