JavaScript中数组的一些实用方法

JavaScript中数组的一些实用方法

前言

课程内容来自视频链接
希望大家多多支持作者
本文记录用,防止遗忘

some循环

const arr = ['小红','大红','aaa','bbb']
// 找到元素对应的索引,foreach循环一旦开始就不能结束了
// 但是该方法的性能较差
arr.forEach((item,index)=>{
    console.log('ok')
    if(item=='aaa'){
        console.log(index)
        return
    }
})
arr.some((item,index)=>{
	console.log('ok')
    if(item=='aaa'){
    	// 在找到对应的项之后,可以通过 return true 固定语法来终止 some循环
        console.log(index)
        return true
    }
})

every循环

判断数组中的每一项是否都满足需求,满足返回true,不满足返回false

const arr= [
	{id: 1, name: '西瓜', state: true},
	{id: 2, name: '榴莲', state: true},
	{id: 3, name: '草莓', state: true},
]
// 需求:判断数组中,水果是否被全选中了
const result = arr.every(item => item.state==true)
console.log(result)

reduce循环

普通实现

const arr = [
      { id: 1, name: '西瓜', state: true, price: 10, count: 1 },
      { id: 2, name: '榴莲', state: false, price: 80, count: 2 },
      { id: 3, name: '草莓', state: true, price: 20, count: 3 },
]

// 需求:把购物车数组中,已勾选的水果,总价累加起来!
let amt = 0 // 代表总价钱
arr.filter(item => item.state).forEach(item => {
	amt += item.price * item.count
})
console.log(amt)

reduce实现
reduce循环可以理解为累加器,把每次循环的结果累加起来

const arr = [
      { id: 1, name: '西瓜', state: true, price: 10, count: 1 },
      { id: 2, name: '榴莲', state: false, price: 80, count: 2 },
      { id: 3, name: '草莓', state: true, price: 20, count: 3 },
]
// reduce((累加的结果, 当前循环项)=>{},初始值)
// 第二次循环amt的值就等于第一次循环return的值
const amt=arr.filter(item => item.state).reduce((amt, item)=>{
	return amt += item.price * item.count
}, 0)
console.log(amt)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值