当前位置: 首页 > wzjs >正文

北京做网站推广兼职河南seo网站策划

北京做网站推广兼职,河南seo网站策划,wordpress一键安装,企业网站开发培训一、语法 array.reduce(callbackfn, initialValue);callbackfn (accumulator, currentValue, currentIndex, array) > {// 回调逻辑 } callbackFn 为数组中每个元素执行的函数。 其返回值将作为下一次调用 callbackFn 时的 accumulator 参数。对于最后一次调用&#xff0c…

一、语法

array.reduce(callbackfn, initialValue);callbackfn =(accumulator, currentValue, currentIndex, array) => {// 回调逻辑
}
callbackFn

为数组中每个元素执行的函数。

其返回值将作为下一次调用 callbackFn 时的 accumulator 参数。对于最后一次调用,返回值将作为 reduce() 的返回值。

currentValue

当前元素的值。

在第一次调用时,若指定了 initialValue,则为 array[0] 的值,否则为 array[1]。(若未指定 initialValue, array[0] 的值将充当initialValue

currentIndex

currentValue 在数组中的索引位置。

在第一次调用时,如果指定了 initialValue 则为 0,否则为 1

 initialValue

第一次调用回调时初始化 accumulator 的值。

如果指定了 initialValue,则 callbackFn 从数组中的第一个值(即 array[0])作为 currentValue 开始执行。如果没有指定 initialValue,则 accumulator 初始化为数组中的第一个值,并且 callbackFn 从数组中的第二个值(即 array[1])作为 currentValue 开始执行。在这种情况下,如果数组为空(没有第一个值可以作为 accumulator 返回),则会抛出错误。

二、示例

1、打印所有参数

const numbers = [10, 20, 30];numbers.reduce((acc, curr, idx, arr) => {console.log({accumulator: acc,currentValue: curr,currentIndex: idx,array: arr,});return acc + curr; // 累加求和
}, 0);
{accumulator: 0,       // 初始值currentValue: 10,     // 第一个元素currentIndex: 0,      // 第一个索引array: [10, 20, 30]   // 原数组
}
{accumulator: 10,      // 上一轮返回值 (0 + 10)currentValue: 20,     // 第二个元素currentIndex: 1,      // 第二个索引array: [10, 20, 30]
}
{accumulator: 30,      // 上一轮返回值 (10 + 20)currentValue: 30,     // 第三个元素currentIndex: 2,      // 第三个索引array: [10, 20, 30]
}

最终返回值:6010 + 20 + 30)。

 二、统计数组中每个元素的出现次数,并返回一个对象(键为元素值,值为出现次数)

const names = ["Alice", "Bob", "Tiff", "Bruce", "Alice"];const countedNames = names.reduce((allNames, name) => {const currCount = allNames[name] ?? 0; // 获取当前名字的计数(若不存在则为 0)return {...allNames, // 复制原对象的所有属性[name]: currCount + 1, // 更新当前名字的计数};
}, {}); // 初始值为空对象 {}
第一轮
  • allNames = {}(初始值)
  • name = "Alice"
  • currCount = allNames["Alice"] ?? 0 → undefined ?? 0 → 0
  • 返回:

    { ...{}, "Alice": 0 + 1 }

    → { "Alice": 1 }
第二轮
  • allNames = { "Alice": 1 }
  • name = "Bob"
  • currCount = allNames["Bob"] ?? 0 → undefined ?? 0 → 0
  • 返回:

    { ...{ "Alice": 1 }, "Bob": 0 + 1 }

    → { "Alice": 1, "Bob": 1 }
第三轮
  • allNames = { "Alice": 1, "Bob": 1 }
  • name = "Tiff"
  • currCount = allNames["Tiff"] ?? 0 → undefined ?? 0 → 0
  • 返回:

    { ...{ "Alice": 1, "Bob": 1 }, "Tiff": 0 + 1 }

    → { "Alice": 1, "Bob": 1, "Tiff": 1 }
第四轮
  • allNames = { "Alice": 1, "Bob": 1, "Tiff": 1 }
  • name = "Bruce"
  • currCount = allNames["Bruce"] ?? 0 → undefined ?? 0 → 0
  • 返回:

    { ...{ "Alice": 1, "Bob": 1, "Tiff": 1 }, "Bruce": 0 + 1 }

    → { "Alice": 1, "Bob": 1, "Tiff": 1, "Bruce": 1 }
第五轮
  • allNames = { "Alice": 1, "Bob": 1, "Tiff": 1, "Bruce": 1 }
  • name = "Alice"
  • currCount = allNames["Alice"] ?? 0 → 1 ?? 0 → 1
  • 返回:

    { ...{ "Alice": 1, "Bob": 1, "Tiff": 1, "Bruce": 1 }, "Alice": 1 + 1 }

    → { "Alice": 2, "Bob": 1, "Tiff": 1, "Bruce": 1 }

最终结果

{ "Alice": 2, "Bob": 1, "Tiff": 1, "Bruce": 1 }

关键点

  1. ?? 运算符(空值合并运算符)​

    (1)如果左侧操作数为 null 或 undefined,返回右侧操作数;否则返回左侧操作数。(2)在这里用于处理名字第一次出现时 allNames[name] 为 undefined 的情况。
  2. ​展开运算符 ...

    复制原对象的所有属性,避免直接修改原对象(保持不可变性)。
  3. ​动态键名 [name]

    使用计算属性名语法,将变量 name 的值作为对象的键。
  4. ​初始值 {} 的作用​

    确保累加器从空对象开始,避免未定义行为。

三、题目

1991. 找到数组的中间位置 - 力扣(LeetCode)

数组和字符串 - LeetBook - 力扣(LeetCode)全球极客挚爱的技术成长平台


文章转载自:

http://fQ7dRCi0.dycbp.cn
http://4XihrTWb.dycbp.cn
http://y5HI7ydX.dycbp.cn
http://o3W2F3hL.dycbp.cn
http://TejzHrpF.dycbp.cn
http://BlbjKsP4.dycbp.cn
http://kks5ZiE6.dycbp.cn
http://eC0mBzok.dycbp.cn
http://CkISmGSc.dycbp.cn
http://np7BugMv.dycbp.cn
http://Pn2dqA5X.dycbp.cn
http://z1ixQ9jf.dycbp.cn
http://BVnHcX3n.dycbp.cn
http://Sw5QVptP.dycbp.cn
http://CcfIHrbc.dycbp.cn
http://FLMnmESV.dycbp.cn
http://lET7KIDk.dycbp.cn
http://RWNcNUk7.dycbp.cn
http://5tEo3Hi6.dycbp.cn
http://1Mz4WhGR.dycbp.cn
http://T5d3817J.dycbp.cn
http://a81bfPAY.dycbp.cn
http://pRz0Y0i9.dycbp.cn
http://KfjndfeD.dycbp.cn
http://6h6umV2k.dycbp.cn
http://jJXx8rTK.dycbp.cn
http://yzIpidZy.dycbp.cn
http://3GmhDCSP.dycbp.cn
http://jZBTxfkF.dycbp.cn
http://15Zdvvuw.dycbp.cn
http://www.dtcms.com/wzjs/641252.html

相关文章:

  • 蚌埠网站制作公司价格网站建设价格女
  • 制作网站建网站定制开发电商网站建设
  • 表白网站生成器wordpress分类目录 模版
  • 太原网站建设技术托管安卓5 wordpress
  • 国外网站不需要备案吗企业网站空间选择
  • 同仁网站建设公司5免费网站建站
  • 一个公司做两个网站的好处高端网站建设 案例
  • 凡科手机网站建设开发wordpress首页缩略图插件
  • 黄山网站建设策划免费前端模板网站
  • 粘土做龙网站视频银川森林半岛
  • 重庆推广网站排名四川seo选哪家
  • 医药网站建设中图片赣州做网站的公司哪家好
  • 网站以个人名义备案牛牛网站建设
  • 律师网站素材网站建设经费方案
  • asp.net网站开发视频wordpress标签加入文章列表
  • 破解WordPress站点织梦网站建设教程
  • 建设菠菜网站天宁常州做网站
  • 网站联盟平台网站官网
  • 网站seo关键词排名推广wordpress 4.3.4下载
  • 网站建设东莞深圳蚂蚁网络
  • 广州定制网站开发网站开发编程语言
  • 网站建设项目分期眼前一亮的公司名
  • 行业网站推广什么意思网站模板的制作怎么做
  • 网站建设属于什么开票类目缩我短链接生成器
  • 有啦域名网站怎么做吴忠住房和城乡建设局网站
  • 做混剪素材下载网站站长工具ping
  • 做网站运维应该看的书沈阳网页制作设计营销
  • 淘宝优惠网站怎么做百度cdn wordpress
  • 新艾尚网站建设推广百度产品大全首页
  • 数据网站建设哪家好手机网站输入框