2016-04-09 4 views
0
var myArr = [ '111' , '222' , '333' ] ; 

これは基本的に数字を合計する[3, 6, 9]になります。ネストされたfor-loopまたはmapはこれを達成するための最良のルートですか?JavaScriptで配列に数字を追加する

+0

OP、あなたはここで回答数を持っていながら、コーディングサービスとしてSOを使用するのではなく、試してみました。 – Andy

+0

おもしろい: 'result = myArr.map(x => eval([... x] .join( '+')))' –

答えて

2

あなたは、各桁の正規表現マッチを減らすの和をマッピングし、評価することができます。

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>

はそれがお役に立てば幸いです。)

2

私は多分、このような何かをしたいです:

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

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

あなたの答えを理解するのに役立つ説明を追加してください。ちょうどコードの塊を残して。 – Huey

0

私はこのバイオリンはあなたが後にしている結果だと思ういます:

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/

0

2行ES6アプローチを。今後の参考のために、それはあなたが解決策を自分でしようとすると問題が発生した場合、我々は何を見ることができるので、あなたの質問として_that_を投稿することが重要です

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

DEMO

+1

ES6では 'el.split( '')'の代わりに '[... el]'を使うことができます –

関連する問題