首页 > 编程知识 正文

js数组快速排序,js数组的includes方法

时间:2023-05-06 08:27:04 阅读:11306 作者:2790

前言

这两天我在家帮朋友做项目。 项目使用数组的indexOf方法找到了文章。 感觉非常好。 顺便整理一下,以免失去链接。

说到索引of,您可能不太熟悉,它在确定字符串是否包含子字符串时特别常用。 正则不习惯同学的利器。 本文通过实例介绍了最近遇到的问题,并介绍了索引关闭方法。 本论文是小知识的积累,不是深入讨论的话题,所以这里没有说明indexOf ()的第二个参数,但大家都知道第二个参数的作用。

使用字符串类型

复习熟悉的字符串用法,举个例子

let str='orange ';

str.indexof('o ); //0

str.indexof('n ); //3

str.indexof('c ); //-1

其中0和3分别是o和n出现在字符串中的位置。 下标为0。 -1意味着不一致。

有人曾问我为什么偏偏-1不是空的或未定义的。 请问制定规则的人。 一脸无奈的表情。

看这里也没有什么亮点啊。 请不要着急。 让我再举一个例子

let numStr='2016 ';

numstr.indexof('2); //0

numstr.indexof(2; //0

现在,从一个小点来看,indexOf会进行简单的类型转换,将数字转换为字符串‘2’,然后执行。

使用编号类型

因为number类型可能不包含索引of方法,但可以进行隐式转换。 明确告诉我没有,上面的例子

let num=2016;

num.indexof(2; //uncaught typeerror 3360 num.indexofisnotafunction

请不要在number类型中使用indexOf方法? 那个会转换成字符串呢。 接着上面的例子写

(二逼青年的写法

num='2016 ';

num.indexof(2; //0

//普通青年的写法

num.toString ().indexOf(2) ) 2; //0

文艺青年的写法

(' num ) .索引of (2) ) 2; //0

第一种写法简单直接,对于已知的短数字也不是不可能。 但是,如果num变量针对不同的数据发生变化,该怎么办?

第二种写法是最常用的,但比第三种写法长了一点。 哈哈,其实哪个都可以,但是代码清高的人喜欢第三个。

使用阵列类型

大家打起精神来,ggdyj来了。

数组方法已经很熟悉了,但忽略了数组中有一个名为indexOf的方法(就个人而言)。

不是胡说,如果有什么问题,注意点在哪里?

let arr=['orange ',' 2016 ',' 2016'];

ARR.indexof(orange ); //0

ARR.indexof('o ); //-1

ARR.indexof(2016 ); //1

ARR.indexof(2016; //-1

这里没有把例子划分得那么细,四个例子足以说明问题。

由于` arr.indexof(‘orange )输出0 ) orange )是数组的第0个元素,因此它将匹配并返回下标。

` arr.index of (‘o’)输出-1因为此方法不会基于每个元素再次执行索引of匹配。

` arr.indexof(2016 ) )输出1此方法返回第一个数组元素下的表直到匹配,因此不是返回所有匹配的下标。

` arr.indexof(2016 )输出-1注意:此处不执行隐式类型转换。

既然发现了漏洞,我们就可以刨根问底了。 去MDN官网看看吧。 对这个话题感兴趣的朋友,请直接跳到Array.prototype.indexOf ()。

给想知道的朋友下面官方的说明。

索引of (comparessearchelementtoelementsofthearrayusingstrictequality (thesamemethodusedbythe==or triple-equalsoperality )

在这里,一眼就能看到使用了严格等于(==)。 大家做出相似的判断时请小心。 请不要误以为数字会转换成字符串。 同样,字符串也不会转换为数字。

总结

以上是这篇文章的所有内容。 希望这篇文章的内容能给大家的学习和工作带来一定的帮助。 如果有疑问的话请用信息交流。

String:indexOf对’0’进行类型转换,然后将其转换为0。

number :没有索引of方法。 必须将数字类型转换为字符串。 方法有三种。 直接字符串、字符串toString和字符串的拼接。

Array :数组也有类似的索引of方法。 但是,在确定类型时使用“严格质量”(strict equality ),即==。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。