迭代实现-js-v1.0.0
2019-07-29 本文已影响0人
一点金光
---
title:迭代实现
date: 2018-06-09 16:29:00
updated: 2018-06-10 12:00:00
categories:
- 语言基础
- 函数编程
tags:
- nodejs
---
从字面量(如for循环)到迭代(递归)
let arr = [1, 2, 3]
//基于字面量-do while
(function() {
var i = 0,
len = arr.length;
do {
if (i == 2) {
break; // 循环被终止, 此处如果是continue就会造成循环无法退出
};
console.log('array['+ i +']:' + arr[i]);
i++;
} while(i<len);
})();
//基于字面量-for
(function(){
for(var i=0,length=arr.length;i<length;i++){
console.log(arr[i]);//内部方法若有可能相互影响,也要置于闭包之内
// do sth. here
}
})();
//基于字面量-for ...in
//一般不建议使用for…in遍历数组,因为顺序是不确定的
for(letitem in arr){
console.log(arr[item]);
}
//基于字面量-for ...of
for (let item of arr) {
console.log(item)
}
//基于递归
function out(n) {
//确定退出条件
if(n<0){
return "";
}
//确定循环内容
console.log(arr[n])
return out(n-1);
}
out(2);
数组篇
项目 | 任务 | 诠释 |
---|---|---|
forEach | 遍历执函 | 让每一项做某件事 |
map | 遍历执函;带返回值 | 通过某种计算产生一个新的数组 |
filter | 遍历执函;带返回值 | 筛选出符合条件的项,产生一个新的数组 |
reduce | 遍历执函;带返回值 | 让前一项和后一项做某件事,并累计最终值 |
every | 遍历执函;带返回值 | 检查每一项是否符合条件 |
some | 遍历执函;带返回值 | 检查是否有某项符合条件 |
某栈篇
队列篇
链表篇