最近在公司里接触了JS,由于开发需要阅读了一些JS的书籍和资料,发现JS的数据结构很灵活,包括参数类型也是处于do whatever you want的状态(自由的同时也带来了一些坑,项目里就遇到了函数传参类型的问题)也算接触了一点函数式编程,但是这函数式编程技巧颇多,后面慢慢踩坑慢慢整合了。这次就JS里最常用的数据结构——数组,来进行一波整理。也算作为自己以后开发的小宝典吧~
// JS数组常用操作
const items = [
{name: 'A', price: 100},
{name: 'B', price: 200},
{name: 'C', price: 300}
];
// filter 在不改变原始数组的情况下找到满足对应条件的元素
const filter = items.filter((item) => {
return item.price <= 100;
});
console.log(filter); // [ { name: 'A', price: 100 } ]
// map 获取原始数组中包含对应属性的元素
const arrNames = items.map((item) => {
return item.name;
});
console.log(arrNames);// [ 'A', 'B', 'C' ]
// find 函数 找到数组内第一个满足指定条件的元素
const findName = items.find((item) => {
return item.name === 'A';
});
console.log(findName); // { name: 'A', price: 100 }
//foreach循环 顺序打数组内所有元素
items.forEach((item) => {
console.log(item);
});
// { name: 'A', price: 100 } { name: 'B', price: 200 } { name: 'C', price: 300 }
// some 返回布尔变量,判断一个数组里是否有满足指定条件的元素
const hasItem = items.some((item) => {
return item.price > 100;
})
console.log(hasItem); // true
// every 返回布尔,判断数组内每一个元素是否都满足指定条件
const checkItemPrice = items.every((item) =>{
return item.price <= 300;
});
console.log(checkItemPrice); // true
// reduce 返回迭代结果,把每一轮的计算结果当作参数再次传递给定义的函数
const totalPrice = items.reduce((currentPrice, item)=> {
return currentPrice + item.price;
}, 0);
console.log(totalPrice); // 600
// 返回布尔,判断一个array是否含有指定元素
let arr = [1, 2, 3];
const checkHasNum = arr.includes(3); // true
console.log(checkHasNum);
更多精彩内容...
并发编程:
Java并发编程的艺术(三)——synchronized,volatile与final
JVM学习:
JDK源码阅读:
JDK源码阅读(二)——AbstractStringBuilder,StringBuffer与StringBuilder
喜欢的话转发分享,点亮“在看”噢~