原生js forEach()和map()遍历

A:相同点:

1.都是循环遍历数组中的每一项。

2.forEach() 和 map() 里面每一次执行匿名函数都支持3个参数:数组中的当前项item,当前项的索引index,原始数组input。

3.匿名函数中的this都是指Window。

4.只能遍历数组。

B:不同

1.forEach()

没有返回值

  var ary = [12,23,2,3];

  var res = ary.forEach(function (item,index,ary) {

     input[index] = item*10;

  })

  console.log(res);//-->undefined;

  console.log(ary);//-->会对原来的数组产生改变;

2.map()

有返回值,可以return 出来。

  var ary = [12,2,4,22,1];

  var res = ary.map(function (item,index,ary) {

    return item*10;

  })

  console.log(res);//[120,20,40,220,10];

  console.log(ary);//[12,2,4,22,1];

3.filter()筛选(从这个https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/filter网站上copy的demo)

筛选值

function isBigNum(element) {
return element >= 10;
}
var filtered = [12, 5, 8, 10, 40].filter(isBigNum);
// filtered is [12, 10, 40]

筛选json中的无效值

var arr = [
{ id: 15 },
{ id: -1 },
{ id: 0 },
{ id: 3 },
{ id: 12.2 },
{ },
{ id: null },
{ id: NaN },
{ id: 'undefined' }
]; var invalidEntries = 0; function isNumber(obj) {
return obj !== undefined && typeof(obj) === 'number' && !isNaN(obj);
} function filterByID(item) {
if (isNumber(item.id) && item.id !== 0) {
return true;
}
invalidEntries++;
return false;
} var arrByID = arr.filter(filterByID); console.log('Filtered Array\n', arrByID);
// Filtered Array
// [{ id: 15 }, { id: -1 }, { id: 3 }, { id: 12.2 }] console.log('Number of Invalid Entries = ', invalidEntries);
// Number of Invalid Entries = 5

数组中筛选:

var color = ['red', 'grey', 'green', 'yellow', 'orange'];

/**
* Array filters items based on search criteria (query)
*/
function filterItems(query) {
return color.filter(function(el) {
return el.toLowerCase().indexOf(query.toLowerCase()) > -1;
})
} console.log(filterItems('re')); // ['red', 'grey', 'green']
console.log(filterItems('or')); // ['orange']

ES5实现

var color = ['red', 'grey', 'green', 'yellow', 'orange'];
const filterItems = (query) => {
return color.filter((el) =>
el.toLowerCase().indexOf(query.toLowerCase()) > -1
);
}
console.log(filterItems('re')); // ['red', 'grey', 'green']
console.log(filterItems('or')); // ['orange']

目前先整理这么多,等下次有时间接着整理。

最新文章

  1. Google C++单元测试框架GoogleTest---AdvancedGuide(译文)下
  2. 冰冻三尺非一日之寒--Django框架【进阶篇】
  3. js上传压缩图片
  4. XDU 1161 - 科协的数字游戏II
  5. Mysql5.5命令行修改密码
  6. iOS开发之时间格式的转化
  7. c++ 小知识总结 .xml
  8. gSoap实现ONVIF中xsd__anyType到具体结构类型的转换
  9. mov sreg, r/m16 在16位和32位编程中的区别
  10. java中有符号和无符号数据类型发生转换
  11. autoit脚本-从基本的函数用法开始
  12. Python编程练习:平方值格式化
  13. codeforces158D
  14. Linux基础培训知识点汇总
  15. C++学习5-面向对象编程基础(构造函数、转换构造、静态数据成员、静态成员函数、友元)
  16. MongoDB(六)-- 集群搭建
  17. 超链接 a的小手
  18. (a*b)%c 小的技巧
  19. 【BZOJ4522】密匙破解(Pollard_rho)
  20. python开发者通过国内镜像安装pip包

热门文章

  1. 安卓基础干货(六):安卓Activity的学习
  2. Python爬虫教程-20-xml 简介
  3. Ubuntu14.04下如何安装Python爬虫框架Scrapy
  4. Suse LAMP setup
  5. Oracle案例06—— OGG-01098 Could not flush "./dirdat/e1000004383" (error 28, No space left on device)
  6. 【jQuery】jQuery中的事件捕获与事件冒泡
  7. Oracle Fusion Middleware Supported System check,jdk,java .etc requirements
  8. std::unique实现
  9. 百度地图Label 样式 setStyle
  10. dom4j.jar有什么作用?