簡體   English   中英

使用JavaScript在數組中添加數字

[英]Adding digits in an array with JavaScript

var myArr = [ '111' , '222' , '333' ] ;

我希望將其變成[3, 6, 9] 3,6,9 [3, 6, 9]本質上是對數字進行求和。 嵌套的for-loop或map是實現這一目標的最佳途徑嗎?

您可以映射和求和以減少每個數字的正則表達式匹配:

 var myArr = [ '111' , '222' , '333' ]; var result = myArr.map(function(text){ return text.match(/\\d/g).reduce(function(x, y){ return +y + x; }, 0); }); O.innerHTML = JSON.stringify(result); 
 <pre id=O> 

希望能幫助到你 ;)

我可能會做這樣的事情:

myArr.map(function(a){
    var temp = 0;
    a.split('').forEach(function(b){
        temp += parseInt(b,10);
    });
    return temp;
});
var parseString = function(n) { 
    return n.split('')
          .reduce(function(a, b) {
                  return parseInt(a) + parseInt(b);
           })
    };

myArr.map(function(str) {return   parseString(str)})

我認為這個小提琴會給您帶來您想要的結果:

var myArr = [ "111" , "222" , "333" ] ;
var newArr = myArr.map(function(string){
    var chars = string.split("")
  var value = 0;
  for(var i = 0; i < chars.length; i++ ){
    value = value + parseInt(chars[i])
  }
  return value;
})

https://jsfiddle.net/bw7s6yey/

ES6方法分兩行。

const sum = (arr) => arr.reduce((p, c) => +p + +c);
let out = myArr.map(el => sum([...el]));

DEMO

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM