js的一些实用技巧

js的一些实用技巧

数组对象判断是否存在指定值

const list = [
	  { name: '头部导航', backward: false },
	  { name: '轮播', backward: true },
	  { name: '页脚', backward: false },
];

    const someBackward = list.some(item => item.backward);
    // someBackward: true
    const everyNewest = list.every(item => !item.backward);
    // everyNewest: false
  • 二者都是用来做数组条件判断的,都是返回一个布尔值
  • 二者都可以被中断
  • some 若某一元素满足条件,返回 true,循环中断;所有元素不满足条件,返回 false
  • every 与 some 相反,若有益元素不满足条件,返回 false,循环中断;所有元素满足条件,返回true

数组分割

function Chunk(arr = [], size = 1) {
    return arr.length ? arr.reduce((t, v) => (t[t.length - 1].length === size ? t.push([v]) : t[t.length - 1].push(v), t), [[]]) : [];
}
const arr = [1, 2, 3, 4, 5];
Chunk(arr, 2); // [[1, 2], [3, 4], [5]]

数组去重

let a=[1,1,1,2,3,4,5,5,5,]
[...new Set(a)] 
//[1, 2, 3, 4, 5]

数组求最大或最小值

function Max(arr = []) {
    return arr.reduce((t, v) => t > v ? t : v);
}

function Min(arr = []) {
    return arr.reduce((t, v) => t < v ? t : v);
}

const arr = [12, 45, 21, 65, 38, 76, 108, 43];
Max(arr); // 108
Min(arr); // 12

展开多维数组

  • flat() 方法可以将多维数组展平成一维数组
  • 请注意,如果提供的数组中有空值,它们会被丢弃:
  • flat() 还接受一个可选参数,该参数指定嵌套数组应该被展平的级别数。如果未提供参数,则将使用默认值1:如果输入Infinity参数则不管多少维数组都会展平
  • flatMap() 方法将map()和flat()组合成一个方法。它首先使用提供的函数的返回值创建一个新数组,然后连接该数组的所有子数组元素

遍历对象或数组对象

for(let [key,value] of Object.entries(obj1)){
	console.log(`key: ${key} value:${value}`)
}
//遍历对象
//key:a value:1
//key:b value:2
//key:c value:3

//遍历数组对象
//key:0 value:{a: 1, b: 2, c: 3}
//key:1 value:{a: 1, b: 2, c: 3}

将二维数组转换对象
Object.entries是把对象转成键值对数组,而Object.fromEntries则相反,是把键值对数组转为对象

const arr = [
  ['name', '林三心'],
  ['age', 22],
  ['gender', '男']
]
console.log(Object.fromEntries(arr)) 
// { name: '林三心', age: 22, gender: '男' }

数组的快速查找

 const pets=[  
        {type:'Dog',name:'Max'},  
        {type:'Cat',name:'Karl'},  
        {type:'Dog',name:'Tommy'}  
    ]  
let pet= pets.find(pet=>pet.type==='Dog'&&pet.name==='Tommy');  
console.log(pet);
// {type: "Dog", name: "Tommy"}

求两个数组的交集

var plants1 = ['Saturn', 'Earth', 'Uranus', 'Mercury', 'Venus', 'Earth', 'Mars', 'Jupiter'];
var plants2 = ['Saturn', 'Earth', 'Uranus'];
var alonePlants = [...new Set(plants1)].filter(item => plants2.includes(item));
console.log(alonePlants); 
// [ 'Saturn', 'Earth', 'Uranus' ]

获取数组最后一个元素

var arr = [1,2,3,4,5]
arr.pop() //5 此方法会改变数组的结构,不推荐
arr[arr.length - 1] //5 常用方法
arr.slice(-1)[0] //5 不需要计算数组的长度,直接拿到最后一个元素
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cheng Lucky

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值