2017-01-17 12 views
-4

でテキストエリア内の各改行から番号を追加します。は、私がテキストエリアに次いるのJavascript

リンク|私がする必要がある58932

| 10000
リンク| 25000
リンク"|"の前の文字を削除する各行にすべての数字の合計を取得

ご協力いただければ幸いです!

+1

ここでスタックされていますか?どこに助けが必要かわからない。あなたが望む結果を生み出せなかった何を試しましたか? –

+0

私はJavascript/Jqueryを経験していないので、助けが必要です。私は私のポストを記述して達成しようとしていることを知っています。私はコードを書く方法がわかりません... –

+0

また、なぜ私の元の投稿のdownvoteと編集?これは他の人が自分のプロジェクトに役立つかもしれない正当な質問です。 –

答えて

1

短い溶液:

// Gets textarea content 
var myTextareaText = document.getElementById('my-textarea-id').value; 

// Uses array functions to simplify the process 
let sum = myTextareaText.split('\n').map(x=>x.split('|')[1] * 1).reduce((a,b)=>a+b); 

// Logs de result 
console.log(sum); 
行われていた何

改行によって1)ブレーク:myTextareaText.split( '\ n')で
2)foreachのライン、によって中断 "|"、2番目の項目が取得し、番号に変換します。マップを(x => x.split( '|')[1] * 1)
3)各要素の合計:

+0

コードを使用してください – Teshtek

+0

優秀!短くても完璧なソリューション!ありがとうございました! –

0

String#matchメソッドを使用して値からすべての数値を取得し、Array#reduceメソッドを使用して合計を計算します。

var ele = document.getElementById('text'); 
 

 
// get the text area value 
 
var res = ele.value 
 
    // get all digits combinations , if you want decimal number then use /\d+(\.\d+)?/g 
 
    .match(/\d+/g) 
 
    // iterate and calculate the sum 
 
    .reduce(function(sum, v) { 
 
    // parse the number and add it with previous value 
 
    return sum + Number(v); 
 
    // set initial value as 0 
 
    }, 0); 
 

 
console.log(res);
<textarea id="text">link|10000 link|25000 link|58932 
 
</textarea>

+1

パーフェクト!どうもありがとうございます! –

1

別の解決策:

function myFunction() { 
 
document.getElementById("demo").innerHTML = document.getElementById("myTextarea").value.split("link|").map(Number).reduce(function(a, b){return a+b; }); 
 
}
Calculate:<br> 
 
<textarea id="myTextarea"> 
 
link|10000 
 
link|25000 
 
link|58932</textarea> 
 

 
<p>Click the button to calculate.</p> 
 

 
<button type="button" onclick="myFunction()">Calculate it</button> 
 
<p id="demo"></p>

+0

すばらしい解決策! –

関連する問題