一、方法一:(使用for循环)
二、方法二:(使用reduce方法)
三、方法三:(使用forEach方法)
附:js实现对象数组去重及数据叠加
总结
怎么实现数组的每一个值进行累加呢?我只想到了三种方法,比较基础,也比较常用的,如果还有其他方法可以传授一下给我,谢谢!
一、方法一:(使用for循环)// 1.定义一个数组
var oldArray = [1,2,3,4,5,6,7];
// 2.定义一个初始值 0
let result = 0;
// 2.for循环遍历,累加
for(let i = 0; i<oldArray.length;i++){
result += oldArray[i]
}
console.log(result,'result') //28 result
二、方法二:(使用reduce方法)
// 1.定义一个数组
var oldArray = [1,2,3,4,5,6,7];
// 2.定义一个新的变量接收值
let result = oldArray.reduce((a,b)=>{
return a + b;
})
// 3.打印
console.log(result,'result') // 28 result
三、方法三:(使用forEach方法)
// 1.定义一个数组
var oldArray = [1,2,3,4,5,6,7];
// 2.定义一个变量
let result = 0;
// 3.使用forEach()循环遍历和方法一类似
oldArray.forEach((item)=>{
result += item
})
// // 3.打印
console.log(result,'result')
以上是我想到的比较常用且实用的方法!
附:js实现对象数组去重及数据叠加HTML
<template>
<div>
<div v-for="item in list">
id:{{item.id}} - count:{{item.count}}
</div>
<br />
<div>点击按钮去重,count叠加</div>
<button @click="getData">去重</button>
</div>
</template>
JavaScript
<script>
export default {
name: 'app',
data(){
return {
list: [
{
id: 0,
count: 2,
},
{
id: 1,
count: 2,
},
{
id: 2,
count: 2,
},
{
id: 3,
count: 2,
},
{
id: 0,
count: 2,
},
{
id: 2,
count: 2,
},
]
}
},
methods: {
getData(){
let listFilter = this.list
// 定义map方法
const res = new Map();
// 过滤器过滤listFilter
this.list = listFilter.filter((item) => {
// res收集第一次存在的元素,如果存在,查看存在的位置,对list中的count进行叠加
if(res.has(item.id)){
for(let [key,value] of res){
if(key==item.id){
this.list[key].count += item.count
}
}
}
// 如果不存在,则添加到res中
return !res.has(item.id) && res.set(item.id, 1)
});
}
}
}
</script>
总结
到此这篇关于JS实现数组内值累加常见的3个方法的文章就介绍到这了,更多相关JS数组内值累加内容请搜索软件开发网以前的文章或继续浏览下面的相关文章希望大家以后多多支持软件开发网!