小编典典

不,它没有一个。因此,大多数流行的库在其实用程序包中都附带一个库。查看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()相关推荐

  1. JavaScript(JS) array.splice(index, howMany, [element1][, ..., elementN])

    Array对象允许在一个变量中存储多个值.它存储相同类型元素的固定大小的顺序集合.数组用于存储数据集合,但将数组看作同一类型变量的集合通常更有用.本文主要介绍JavaScript(JS) array. ...

  2. Js Array数组ES5/ES6常用方法

    Js Array数组ES5/ES6常用方法 1.栈方法(先进后出) push():在数组的最后一项后追加值(参数:可以为多个值或数组) 返回:数组的长度,改变了原数组. var a=[1,2,3] a ...

  3. js基础--javascript基础概念之函数

    js基础--javascript基础概念之函数 引用w3c介绍: 函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块. JavaScript 函数语法 函数就是包裹在花括号中的代码块,前面使用 ...

  4. JS Array.slice 截取数组的实现方法

    这篇文章主要介绍了JS Array.slice 截取数组的实现方法,因为我们需要控制一下长度,需要的朋友可以参考下 slice定义和用法 slice() 方法可从已有的数组中返回选定的元素. 语法 a ...

  5. 了不起的Node.js: 将JavaScript进行到底

    了不起的Node.js: 将JavaScript进行到底(Web开发首选,实时,跨多服务器,高并发) Guillermo Rauch 编 赵静 译 ISBN 978-7-121-21769-2 201 ...

  6. 了不起的Node.js: 将JavaScript进行到底(Web开发首选,实时,跨多服务器,高并发)...

    了不起的Node.js: 将JavaScript进行到底(Web开发首选,实时,跨多服务器,高并发) Guillermo Rauch 编   赵静 译 ISBN 978-7-121-21769-2 2 ...

  7. JS Array 中 shift 和 pop 的妙用

    在 JS Array 中支持两个方法,shift() 和 pop(),分别是指从一个数据中的最前面和最后面删除一个值,并返删除值.看一个示例就明白了:     var arr = ['s','o',' ...

  8. JS Array filter()方法

    JS Array filter()方法 js的数据对象有一个fileter()方法,运行传入一个方法,并对数组中的每个元素进行过滤. var arr = [1,2,3,4,5,6]; function ...

  9. 韩顺平轻松搞定网页设计(html+css+js),韩顺平轻松搞定网页设计方案(html+css+js)之javascript现场授课笔记(完整版).doc...

    2011韩顺平轻松搞定网页设计(html+css+js)之 javascript现场授课笔记(完整版) 视频18整和19的前半部分不用看 Javascript的基本介绍 JS是用于WEB开发的脚本语言 ...

最新文章

  1. 深度讲解:web前端性能优化
  2. 在线作图|你不知道的绘制带聚类树的堆叠柱状图的方法
  3. java bean 绑定,在 Java 应用程序中绑定 Bean 和数据
  4. 貌似长沙有个用膳吧外卖网
  5. proto 指定字段json名_比json快5倍的protobuf了解一下
  6. 关于QVariant 的学习一点分享
  7. leetcode-125-Valid Palindrome
  8. win7 64 php mysql_win7 64 搭建 64 位 apache httpd php mysql
  9. MogDB存储过程事务控制与异常块
  10. 结构体,宏,枚举,函数,指针
  11. 编写linux脚本操作 java 服务
  12. python 动态语言 优美_Python动态语言之魅力大揭秘
  13. onenote未响应
  14. Lamp部署于三台主机中
  15. JavaScript getDay()与getDate()
  16. TNW:Tumblr博文已超200亿
  17. 我个人的人生学习感想!
  18. 2021-03-14我的博客
  19. Cadence OrCAD Capture按页码自动编号的方法图文教程及视频演示
  20. java前端页面调用webservice_一个简单的Webservice的demo(中)_前端页面调用

热门文章

  1. 固态硬盘上安装centos_固态硬盘使用f2fs作为根分区安装linux
  2. 数字图像处理2:传统插值
  3. mysql slave 配置_【mysql5.6】 数据库主从(Master/Slave)配置记录
  4. Opencv中Homography
  5. 人体姿态估计--Learning Feature Pyramids for Human Pose Estimation
  6. 人脸检测--FaceBoxes: A CPU Real-time Face Detector with High Accuracy
  7. 车辆密度估计--Understanding Traffic Density from Large-Scale Web Camera Data
  8. 【pytorch】拟合sin函数
  9. Java:获取数组中的子数组的多种方法
  10. 已经正常安装ssh: connect to host 192.168.4.254 port 22: Connection refused