Array方法学习小结
2024-09-26 17:43:45
原生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']
目前先整理这么多,等下次有时间接着整理。
最新文章
- Google C++单元测试框架GoogleTest---AdvancedGuide(译文)下
- 冰冻三尺非一日之寒--Django框架【进阶篇】
- js上传压缩图片
- XDU 1161 - 科协的数字游戏II
- Mysql5.5命令行修改密码
- iOS开发之时间格式的转化
- c++ 小知识总结 .xml
- gSoap实现ONVIF中xsd__anyType到具体结构类型的转换
- mov sreg, r/m16 在16位和32位编程中的区别
- java中有符号和无符号数据类型发生转换
- autoit脚本-从基本的函数用法开始
- Python编程练习:平方值格式化
- codeforces158D
- Linux基础培训知识点汇总
- C++学习5-面向对象编程基础(构造函数、转换构造、静态数据成员、静态成员函数、友元)
- MongoDB(六)-- 集群搭建
- 超链接 a的小手
- (a*b)%c 小的技巧
- 【BZOJ4522】密匙破解(Pollard_rho)
- python开发者通过国内镜像安装pip包
热门文章
- 安卓基础干货(六):安卓Activity的学习
- Python爬虫教程-20-xml 简介
- Ubuntu14.04下如何安装Python爬虫框架Scrapy
- Suse LAMP setup
- Oracle案例06—— OGG-01098 Could not flush ";./dirdat/e1000004383"; (error 28, No space left on device)
- 【jQuery】jQuery中的事件捕获与事件冒泡
- Oracle Fusion Middleware Supported System check,jdk,java .etc requirements
- std::unique实现
- 百度地图Label 样式 setStyle
- dom4j.jar有什么作用?