JS对象数组相同属性进行累加,js根据对象数组中某一属性值,合并相同项,并对某一属性累加处理

let info=[
            { 
                name:"小明",
                score:100
            },{ 
                naem:"小红",
                score:110
            },
            {
                name:"小强",
                score:120
            }
        ]
        
let totalScore=info.reduce((pre,cur)=>{
            return pre+cur.score
        },0)
 console.log(totalScore);//输出330

js根据对象数组中某一属性值,合并相同项,并对某一属性累加处理
Example: 根据code合并数组,并将sl值累加,如下两种方法:

let data = [{ code: 1001, name: ‘苹果’, sl: 11 },

{ code: 1001, name: ‘苹果’, sl: 11 },

{ code: 1001, name: ‘苹果’, sl: 11 },

{ code: 1001, name: ‘苹果’, sl: 11 },

{ code: 1002, name: ‘西瓜’, sl: 11 },

{ code: 1002, name: ‘西瓜’, sl: 15 },

{ code: 1003, name: ‘梨’, sl: 15 },

{ code: 1003, name: ‘梨’, sl: 15 }]

第一种:根据对象key的唯一性,累加sl值
let item = {}
for (let i = 0; i < data.length; i++) {
 item[data[i].code] = ~~item[data[i].code] + data[i].sl
}
console.log(item)

// 结果: {1001: 44, 1002: 26, 1003: 30}

第二种:根据reduce遍历累加,得到数组

let newArray = data.reduce((total, cur, index) => {
  let hasValue = total.findIndex(current => { return current.code === cur.code})
  hasValue === -1 && total.push(cur)
  hasValue !== -1 && (total[hasValue].sl = total[hasValue].sl + cur.sl)
  return total
}, [])
console.log(newArray)

// 结果: [{code: 1001, name: “苹果”, sl: 44}, {code: 1002, name: “西瓜”, sl: 26}, {code: 1003, name: “梨”, sl: 30}]

  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: 使用JavaScript编写扫码枪输入数据累加的代码非常简单。我们可以通过监听输入事件来获取扫码枪输入数据,并在每次输入时将数据累加到一起。 首先,需要在HTML文件创建一个文本框和一个显示累加结果的元素,如下所示: ```html <input type="text" id="input" /> <p id="result"></p> ``` 然后,在JavaScript代码获取输入框和结果显示元素的引用,并添加一个输入事件监听器: ```javascript const input = document.getElementById('input'); const result = document.getElementById('result'); let sum = 0; input.addEventListener('input', function(event) { const value = parseInt(event.target.value); if (!isNaN(value)) { sum += value; result.textContent = '累加结果:' + sum; } }); ``` 这段代码首先定义了一个变量`sum`来保存累加结果的,并设置初始为0。然后,使用`addEventListener`方法添加了一个输入事件监听器,在每次输入事件发生时调用匿名函数。 在匿名函数,首先通过`event.target.value`获取输入的,并使用`parseInt`将其转换为整数类型。然后,检查转换后的是否为有效的数字,若是,将其累加到`sum`,并更新结果显示元素的文本内容。 最后,将JavaScript代码放置在HTML文件的`<script></script>`标签,或者将其保存为一个单独的`.js`文件并通过`<script src="script.js"></script>`的方式引入。 这样,当用户使用扫码枪输入数据时,累加结果会实时显示在页面上。 ### 回答2: 在JavaScript,可以通过监听扫码枪的输入事件来获取扫码枪输入的数据,并进行累加操作。下面是一个简单的示例代码: ```javascript // 假设页面上有一个用于显示累加结果的文本框 var resultInput = document.getElementById('result'); // 初始化累加结果为0 var sum = 0; // 监听扫码枪的输入事件 document.addEventListener('keydown', function(event) { // 获取键盘按下的字符 var char = String.fromCharCode(event.keyCode); // 判断是否为数字 if (/^\d$/.test(char)) { // 将输入的数字累加到结果上 sum += parseInt(char); // 更新文本框的 resultInput.value = sum; } }); ``` 在上述代码,我们通过addEventListener方法监听了keydown事件,当有键盘按键被按下时触发该事件。然后判断按下的键是否为数字,并将数字累加到sum变量。最后更新显示累加结果的文本框的。 这样,当你使用扫码枪输入数字时,脚本会将输入的数字累加起来,并实时更新在页面上。 ### 回答3: 使用JavaScript编写代码来实现扫码枪输入数据的累加非常简单。下面是一个示例代码: ```javascript // 初始化累加器 let sum = 0; // 监听扫码枪输入事件 document.addEventListener('keydown', function(event) { // 检查输入的键是否为数字键 if (event.key >= '0' && event.key <= '9') { // 将输入的数字转换为整数,并累加到总和上 sum += parseInt(event.key); } }); // 输出累加结果 console.log('当前累加结果为:', sum); ``` 上述代码通过使用`document`对象的`addEventListener`方法来监听键盘按下事件,然后检查输入的键是否为数字键。如果是数字键,则将输入的数字转换为整数,并累加到`sum`变量上。最后,通过`console.log`方法输出累加结果。 你可以将上述代码放在HTML文件的`<script>`标签内,并在浏览器运行该文件。然后,当你使用扫码枪扫描条形码时,输入的数字将被累加到`sum`变量上,并在控制台上显示累加结果。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

芝士奶盖四季春owo

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

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

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

打赏作者

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

抵扣说明:

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

余额充值