原生js源码之Array数组的every方法
every
方法测试一个数组内的所有元素是否都能通过某个指定函数的测试,全部通过测试就返回true,一旦有一个元素不通过测试则立马返回false。
下面自己实现一个every
var arr = [1,3,5,7,9]
Array.prototype.myEvery=function(callback){//如果没有传入回调函数,则报错if(!callback) throw new TypeError('undefined is not a function');if (typeof callback !== 'function') {//传入的不是函数也报错throw new TypeError(callback + " is not a function");}for(var i=0,len=this.length;i<len;i++){if(!callback(this[i],i,this)){//如果回调函数的返回值为false ,则终止循环,返回falsereturn false;}}return true;//最终没有匹配到就返回true
}
var res=arr.myEvery(function(item,index,thisArr){console.log(item,index,thisArr);return item>1
});
console.log(res);
结果:
1 0 (5) [1, 3, 5, 7, 9]
false
将函数里面的 return item>1 改成 return item>0 再执行一下。
var arr = [1,3,5,7,9]
Array.prototype.myEvery=function(callback){//如果没有传入回调函数,则报错if(!callback) throw new TypeError('undefined is not a function');if (typeof callback !== 'function') {//传入的不是函数也报错throw new TypeError(callback + " is not a function");}for(var i=0,len=this.length;i<len;i++){if(!callback(this[i],i,this)){//如果回调函数的返回值为false ,则终止循环,返回falsereturn false;}}return true;//最终没有匹配到就返回true
}
var res=arr.myEvery(function(item,index,thisArr){return item>0
});
console.log(res);
输出:
true
就当前实例来讲只有数组的全部元素都大于0的情况下才返回true;否则一遇到不通过的就立马停止执行并返回false。
原生js源码之Array数组的every方法相关推荐
- 原生js源码之Array数组reverse方法
reverse方法将数组中元素的位置颠倒,并返回该数组.数组的第一个元素会变成最后一个,数组的最后一个元素变成第一个.该方法会改变原数组. 语法:arr.reverse() 下面自己来实现: Arra ...
- php tire树,Immutable.js源码之List 类型的详细解析(附示例)
本篇文章给大家带来的内容是关于Immutable.js源码之List 类型的详细解析(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 一.存储图解 我以下面这段代码为例子,画 ...
- 从template到DOM(Vue.js源码角度看内部运行机制)
写在前面 这篇文章算是对最近写的一系列Vue.js源码的文章(github.com/answershuto-)的总结吧,在阅读源码的过程中也确实受益匪浅,希望自己的这些产出也会对同样想要学习Vue.j ...
- Vue.js 框架源码与进阶 - Vue.js 源码剖析 - 响应式原理
文章目录 一.准备工作 1.1 Vue 源码的获取 1.2 源目录结构 1.3 了解 Flow 1.4 调试设置 1.5 Vue 的不同构建版本 1.6 寻找入口文件 1.7 从入口开始 二.Vue ...
- 【笔记-vue】《imooc-vue.js高仿饿了么》、《imooc-vue 音乐app》、《imooc-vue.js源码全方位解析》
20170709 - 20171128:<imooc-vue.js高仿饿了么> 一.第一章 课程简介 1-1课程简介 1.需求分析-脚手架工具-数据mock-架构设计-代码编写-自测-编译 ...
- Evil.js源码解读
https://github.com/duo001/evil.js 火爆全网的 Evil.js 源码解读 火爆全网的 Evil.js 源码解读 什么?黑心996公司要让你提桶跑路了? 想在离开前给你们 ...
- vue.js源码学习分享(一)
今天看了vue.js源码 发现非常不错,想一边看一遍写博客和大家分享 /*** Convert a value to a string that is actually rendered. *转换一 ...
- 从Vue.js源码中我学到的几个实用函数
大家好,我是若川.欢迎加我微信 ruochuan12,长期交流学习.今天推荐Vuejs源码中几个实用的方法. 如果想看Vuejs源码,不知道如何下手,一般推荐配置Sourcemap,针对单个问题调试来 ...
- 【Vue.js源码解析 一】-- 响应式原理
前言 笔记来源:拉勾教育 大前端高薪训练营 阅读建议:建议通过左侧导航栏进行阅读 课程目标 Vue.js 的静态成员和实例成员初始化过程 首次渲染的过程 数据响应式原理 – 最核心的特性之一 准备工作 ...
最新文章
- #在蓝懿学习iOS的日子#第六个练习日
- MemSQL初体验 - (1)传说中速度最快的关系数据库软件
- 读取txt文件赋值到DataGridView中
- linux路由内核实现分析(四)---路由缓存机制(4)
- Linux Crontab内环境变量与Shell环境变量的关系及解决问题的办法
- 【转】 CSS3实现10种Loading效果
- 人脸关键点检测 face keypoint detect
- stm8s003中串口中断问题
- C-Euclidean Distance (牛客多校第一场)均值不等式或者 KTT(?)
- 查看服务器配置以及常用命令
- Intel IPP库概述,合计共5000个函数
- 如何将lvm卷移动到另一台服务器中
- 机器学习中的启发式算法(heuristic algorithm)
- 【方法】Latex使用BibTeX生成参考文献列表
- 2022-2028年中国质量检验检测行业市场全景调查及投资潜力研究报告
- 目标检测论文解读复现之十五:基于YOLOv5的光学遥感图像舰船 目标检测算法
- 关于浏览器自动安装Screenshot Pro拓展的问题
- 淘宝开放平台API接口,接入方案如下
- opengl 编程指南源码下载与环境配置
- 后台如何实现对APP版本更新管理?