一起添加十六进制值数组

时间:2016-07-29 19:05:17

标签: javascript node.js

我在节点js中有一个十六进制值数组,其中包含十六进制值:[' 2ea',' 1b1' ...]。该数组没有固定数量的值。每次都可以更改值的数量。我一直试图想出一个可以添加十六进制值的for循环。但它不起作用。请帮忙。以下代码不正确。

for (var i=0; i<checkSumArray.length; i++) {
  function CheckSumFinal(c1, c2) {
        var hexStr = (parseInt(c1, 16) + parseInt(c2, 16)).toString(16);
        return hexStr;
      }

      var n7= CheckSumFinal(checkSumArray[i], checkSumArray[i+1]);

    }

2 个答案:

答案 0 :(得分:3)

计算数组reduce的总和是完美的。我们的想法是首先计算总和,然后将最终答案转换为base16字符串。

checkSumArray.reduce(function(p, c){
  return p + parseInt(c, 16);
}, 0).toString(16);

答案 1 :(得分:2)

将变量保留在循环之外,只需在循环中加入

&#13;
&#13;
var checkSumArray = ['2ea','1b1', 'fff', '4a1', '1e1'],
    hexStr = 0;

for (var i=0; i<checkSumArray.length; i++) {
    hexStr += parseInt(checkSumArray[i], 16);
}

hexStr = hexStr.toString(16);

document.body.innerHTML = '<pre>' + hexStr + '</pre>'
&#13;
&#13;
&#13;