js查找数组中是否存在某个值(some函数indexOf函数includes函数)

本文详细介绍了JavaScript中数组的some、indexOf及includes方法的使用。some方法用于检测数组中是否存在满足条件的元素,一旦找到即停止搜索并返回true;indexOf方法用于获取指定元素的首次出现位置;includes方法则用于判断数组是否包含特定元素,并对NaN判断进行了优化。

一、some方法

some() 方法会依次执行数组的每个元素:
如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。
如果没有满足条件的元素,则返回false。
注意: some() 不会对空数组进行检测。

注意: some() 不会改变原始数组。

			var ages= [3, 10,18, 35];
			
			function myFn(){
				return age = 18;
			}
			console.log(ages.some(myFn));                                                                               

二、indexOf方法

 

数组的indexOf函数,方法arr.indexOf(find,start);

find:要找的内容,必须;

start:查找开始下标,可选;

返回:查找数据所在的下标,如果没找到,返回-1

			console.log(ages.indexOf(18));

三、includes()函数

ES6提供了Array.includes()函数判断是否包含某一元素,除了不能定位外,解决了indexO两个问题(在ES5,Array已经提供了indexOf用来查找某个元素的位置,如果不存在就返回-1,但是这个函数在判断数组是否包含某个元素时有两个小不足,第一个是它会返回-1和元素的位置来表示是否包含,在定位方面是没问题,就是不够语义化。另一个问题是不能判断是否有NaN的元素。)。它直接返回true或者false表示是否包含元素,对NaN一样能有有效。includes()函数的第二个参数表示判断的起始位置。第二个参数也可以是负数,表示从右数过来第几个,但是不改变判断搜索的方向,搜索方向还是从左到右。

const redFruits = ['apple', 'strawberry', 'cherry', 'cranberries'];
console.log(redFruits.includes('apple'));//true
console.log(redFruits.includes('apple',0));//true
console.log(redFruits.includes('apple',1));//false
console.log(redFruits.includes('apple',-4));//true

 

 

 

在QML中,可以使用多种方法查找数组是否存在某个。由于QML借鉴了JavaScript的数组使用方式,因此可以使用JavaScript数组方法来实现这一功能。 ### 使用 `includes` 方法 `includes` 方法用于判断一个数组是否包含一个指定的,如果包含则返回 `true`,否则返回 `false`。 ```qml import QtQuick 2.15 import QtQuick.Window 2.15 Window { visible: true width: 640 height: 480 title: "Check Value in Array" property var myArray: ["apple", "banana", "cherry"] Component.onCompleted: { var valueToFind = "banana"; if (myArray.includes(valueToFind)) { console.log(valueToFind + " is in the array."); } else { console.log(valueToFind + " is not in the array."); } } } ``` ### 使用 `indexOf` 方法 `indexOf` 方法返回数组中可以找到一个给定元素的第一个索引,如果不存在,则返回 -1。 ```qml import QtQuick 2.15 import QtQuick.Window 2.15 Window { visible: true width: 640 height: 480 title: "Check Value in Array" property var myArray: ["apple", "banana", "cherry"] Component.onCompleted: { var valueToFind = "banana"; if (myArray.indexOf(valueToFind) !== -1) { console.log(valueToFind + " is in the array."); } else { console.log(valueToFind + " is not in the array."); } } } ``` ### 使用 `some` 方法 `some` 方法测试数组中是不是至少有1个元素通过了被提供的函数测试。它返回的是一个布尔。 ```qml import QtQuick 2.15 import QtQuick.Window 2.15 Window { visible: true width: 640 height: 480 title: "Check Value in Array" property var myArray: ["apple", "banana", "cherry"] Component.onCompleted: { var valueToFind = "banana"; var found = myArray.some(function(element) { return element === valueToFind; }); if (found) { console.log(valueToFind + " is in the array."); } else { console.log(valueToFind + " is not in the array."); } } } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值