桁数の和
2276 ワード
code
function solution(n, arr){
let answer, max=Number.MIN_SAFE_INTEGER;
for(let x of arr){
let sum=x.toString().split('').reduce((a, b)=>a+Number(b), 0);
if(sum>max){
max=sum;
answer=x;
}
else if(sum===max){
if(x>answer) answer=x;
}
}
return answer;
}
let arr=[128, 460, 603, 40, 521, 137, 123];
console.log(solution(7, arr));
知るところ
1. Number.toString
#数値を文字列に変換(number to string)
1.(数値).toString()
(111).toString()//"111"
(NaN).toString()//"NaN"
String(数値)
newなしでString構造関数を使用する方法
(111).toString()//"111"
(NaN).toString()//"NaN"
数字+”
:文字列接続演算子(+)の使用方法.引用符で囲まれた空の文字列を加えると、変形が発生します.
111 + ""//"111"
NaN + ""//"NaN"
2.mapとreduce
2. map
#フォーマット:配列.map((要素、インデックス、配列)=>{return要素});
#繰り返されるドアの回りに、配列中の要素を1対1でペアリングします.
定義した関数をメソッドのパラメータとして入れればよい.
const number = [1, 2, 3];
let result = number.map((v) => {
return v + 1;
});
result;//[2, 3, 4]
上でv=1,2,3をループします.
地図を利用して
const number = [1, 2, 3]
let result = number.map((v) => {
console.log(v%2?ホール:“ペアリング”);
});
console.log(result);//'ホール
3. reduce
#フォーマット:配列.reduce((累積値、グレー値、インデックス、要素)=>{結果を返し、初期値);
以前の値ではなく累積値に注意!!!
const number = [1, 2, 3];
result = number.reduce((acc, cur, i) => {
console.log(acc, cur i);
return acc + cur;
}, 0);
//0 1 0
//1 2 1
//3 3 2
result;//6
初期値が記入されていない場合、accの番号は自動的に0から始まります.
reduceの使用
result = number.reduce((acc, cur) => {
acc.push(cur%2?「奇数」:「偶数」);
return acc;
}, []);
result;//[『奇数』『偶数』『奇数』]
問題でのreduceの使用
let sum=x.toString().split('').reduce((a, b)=>a+Number(b), 0);
a(acc)の値を0に初期化した後、String bをNumberに変換し、aに+累積を加える.
Reference
この問題について(桁数の和), 我々は、より多くの情報をここで見つけました https://velog.io/@minho100227/자릿수의-합テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol