php js array,JavaScript等同于PHP的in_array()
小编典典
不,它没有一个。因此,大多数流行的库在其实用程序包中都附带一个库。查看jQuery的inArray和Prototype的Array.indexOf的示例。
jQuery的实现就像您期望的那样简单:
function inArray(needle, haystack) {
var length = haystack.length;
for(var i = 0; i < length; i++) {
if(haystack[i] == needle) return true;
}
return false;
}
如果您要处理大量的数组元素,那么上面的技巧就可以很好地解决问题。
编辑
:哎呀。我什至没有注意到您想查看一个数组是否在另一个数组中。根据PHP文档,这是PHP的预期行为in_array:
$a = array(array('p', 'h'), array('p', 'r'), 'o');
if (in_array(array('p', 'h'), $a)) {
echo "'ph' was found\n";
}
if (in_array(array('f', 'i'), $a)) {
echo "'fi' was found\n";
}
if (in_array('o', $a)) {
echo "'o' was found\n";
}
// Output:
// 'ph' was found
// 'o' was found
克里斯和亚历克斯发布的代码不遵循此行为。Alex是Prototype的indexOf的正式版本,而Chris的更像是PHP的array_intersect。这就是您想要的:
function arrayCompare(a1, a2) {
if (a1.length != a2.length) return false;
var length = a2.length;
for (var i = 0; i < length; i++) {
if (a1[i] !== a2[i]) return false;
}
return true;
}
function inArray(needle, haystack) {
var length = haystack.length;
for(var i = 0; i < length; i++) {
if(typeof haystack[i] == 'object') {
if(arrayCompare(haystack[i], needle)) return true;
} else {
if(haystack[i] == needle) return true;
}
}
return false;
}
这是我对上面的测试:
var a = [['p','h'],['p','r'],'o'];
if(inArray(['p','h'], a)) {
alert('ph was found');
}
if(inArray(['f','i'], a)) {
alert('fi was found');
}
if(inArray('o', a)) {
alert('o was found');
}
// Results:
// alerts 'ph' was found
// alerts 'o' was found
请注意,我故意不扩展Array原型,因为这样做通常是一个坏主意。
2020-05-01
php js array,JavaScript等同于PHP的in_array()相关推荐
- JavaScript(JS) array.splice(index, howMany, [element1][, ..., elementN])
Array对象允许在一个变量中存储多个值.它存储相同类型元素的固定大小的顺序集合.数组用于存储数据集合,但将数组看作同一类型变量的集合通常更有用.本文主要介绍JavaScript(JS) array. ...
- Js Array数组ES5/ES6常用方法
Js Array数组ES5/ES6常用方法 1.栈方法(先进后出) push():在数组的最后一项后追加值(参数:可以为多个值或数组) 返回:数组的长度,改变了原数组. var a=[1,2,3] a ...
- js基础--javascript基础概念之函数
js基础--javascript基础概念之函数 引用w3c介绍: 函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块. JavaScript 函数语法 函数就是包裹在花括号中的代码块,前面使用 ...
- JS Array.slice 截取数组的实现方法
这篇文章主要介绍了JS Array.slice 截取数组的实现方法,因为我们需要控制一下长度,需要的朋友可以参考下 slice定义和用法 slice() 方法可从已有的数组中返回选定的元素. 语法 a ...
- 了不起的Node.js: 将JavaScript进行到底
了不起的Node.js: 将JavaScript进行到底(Web开发首选,实时,跨多服务器,高并发) Guillermo Rauch 编 赵静 译 ISBN 978-7-121-21769-2 201 ...
- 了不起的Node.js: 将JavaScript进行到底(Web开发首选,实时,跨多服务器,高并发)...
了不起的Node.js: 将JavaScript进行到底(Web开发首选,实时,跨多服务器,高并发) Guillermo Rauch 编 赵静 译 ISBN 978-7-121-21769-2 2 ...
- JS Array 中 shift 和 pop 的妙用
在 JS Array 中支持两个方法,shift() 和 pop(),分别是指从一个数据中的最前面和最后面删除一个值,并返删除值.看一个示例就明白了: var arr = ['s','o',' ...
- JS Array filter()方法
JS Array filter()方法 js的数据对象有一个fileter()方法,运行传入一个方法,并对数组中的每个元素进行过滤. var arr = [1,2,3,4,5,6]; function ...
- 韩顺平轻松搞定网页设计(html+css+js),韩顺平轻松搞定网页设计方案(html+css+js)之javascript现场授课笔记(完整版).doc...
2011韩顺平轻松搞定网页设计(html+css+js)之 javascript现场授课笔记(完整版) 视频18整和19的前半部分不用看 Javascript的基本介绍 JS是用于WEB开发的脚本语言 ...
最新文章
- 深度讲解:web前端性能优化
- 在线作图|你不知道的绘制带聚类树的堆叠柱状图的方法
- java bean 绑定,在 Java 应用程序中绑定 Bean 和数据
- 貌似长沙有个用膳吧外卖网
- proto 指定字段json名_比json快5倍的protobuf了解一下
- 关于QVariant 的学习一点分享
- leetcode-125-Valid Palindrome
- win7 64 php mysql_win7 64 搭建 64 位 apache httpd php mysql
- MogDB存储过程事务控制与异常块
- 结构体,宏,枚举,函数,指针
- 编写linux脚本操作 java 服务
- python 动态语言 优美_Python动态语言之魅力大揭秘
- onenote未响应
- Lamp部署于三台主机中
- JavaScript getDay()与getDate()
- TNW:Tumblr博文已超200亿
- 我个人的人生学习感想!
- 2021-03-14我的博客
- Cadence OrCAD Capture按页码自动编号的方法图文教程及视频演示
- java前端页面调用webservice_一个简单的Webservice的demo(中)_前端页面调用
热门文章
- 固态硬盘上安装centos_固态硬盘使用f2fs作为根分区安装linux
- 数字图像处理2:传统插值
- mysql slave 配置_【mysql5.6】 数据库主从(Master/Slave)配置记录
- Opencv中Homography
- 人体姿态估计--Learning Feature Pyramids for Human Pose Estimation
- 人脸检测--FaceBoxes: A CPU Real-time Face Detector with High Accuracy
- 车辆密度估计--Understanding Traffic Density from Large-Scale Web Camera Data
- 【pytorch】拟合sin函数
- Java:获取数组中的子数组的多种方法
- 已经正常安装ssh: connect to host 192.168.4.254 port 22: Connection refused