[JQUERY] 숫자의 배열의 합을 찾는 방법
JQUERY숫자의 배열의 합을 찾는 방법
해결법
-
1.Array.prototype.reduce 이전 요소 값의 합을 현재의 요소 값을 가산 어레이를 통해 반복 할 수있다.
Array.prototype.reduce 이전 요소 값의 합을 현재의 요소 값을 가산 어레이를 통해 반복 할 수있다.
CONSOLE.LOG ( [1, 2, 3, 4] .reduce ((a, b) => A + B, 0) ) CONSOLE.LOG ( [] .reduce ((a, b) => A + B, 0) )
당신은 형식 오류를 얻을 수 CONSOLE.LOG ( [] .reduce ((a, b) => A + b) )
CONSOLE.LOG ( [1,2,3] .reduce (함수 (ACC, 발) {복귀 ACC + 발}, 0) ) CONSOLE.LOG ( [] .reduce (함수 (ACC, 발) {복귀 ACC + 발}, 0) )
비 숫자는 가능한 입력이 있다면, 당신은 그것을 처리 할 수 있습니다? CONSOLE.LOG ( [ "하이"1, 2 "개구리"]. (=> A + B) (A, B)을 줄이기 ) numOr0 = N => 때는 isNaN (N)를 보자? 0 : N CONSOLE.LOG ( [ "하이"1, 2 "개구리"]. =>) ((A, B를 줄일 numOr0 (a) + numOr0 (b)) )
우리는 자바 스크립트 코드의 문자열 표현을 실행하기 위해 평가를 할 수 있습니다. 문자열 배열 Array.prototype.join 변환 함수를 사용하여, 우리는 (6)에, "1 + 2 + 3 '에있는 평가합니다 [1,2,3] 변경.
CONSOLE.LOG ( 평가 ([1,2,3] .join ( '+')) ) 배열이 내장되어있는 경우 //이 방법은 위험하다 // 사용자 입력에서 그것은 예를 들면 악용 될 수 있으므로 : 평가 ([1, "2, 경보 ("악성 코드!) "]에 가입 ( '+')).
경고를 표시 당연히 일어날 수있는 최악의 일이 아니다. 나는 그것이 명확하게 생각하지 않는 한 나는이 포함 한 유일한 이유는 답변 Ortund의 질문과 같습니다.
-
2.리스프에서 감소에 대한 정확하게 작업 할 수 this'd. 당신은 이러한 종류의 코드를 볼 것입니다 :
리스프에서 감소에 대한 정확하게 작업 할 수 this'd. 당신은 이러한 종류의 코드를 볼 것입니다 :
(reduce #'+ '(1 2 3)) ; 6
다행스럽게도, 자바 스크립트에서, 우리는 또한 줄일 수있다! 불행히도, +는 조작자가 아닌 함수이다. 그러나 우리는 그것을 꽤 만들 수 있습니다! 여기에,보기 :
const sum = [1, 2, 3].reduce(add,0); // with initial value to avoid when the array is empty function add(accumulator, a) { return accumulator + a; } console.log(sum); // 6
하지 그 예쁜가요? :-)
더 나은! 당신이 ECMAScript를 2015를 사용하는 경우 (ECMAScript를 6 일명),이 꽤 될 수 있습니다 :
const sum = [1, 2, 3].reduce((partial_sum, a) => partial_sum + a,0); console.log(sum); // 6
-
3.왜 감소하지? 그것은 일반적으로 비트 카운터 직관적이지만, 합을 찾기 위해 그것을 사용하는 것은 매우 간단합니다 :
왜 감소하지? 그것은 일반적으로 비트 카운터 직관적이지만, 합을 찾기 위해 그것을 사용하는 것은 매우 간단합니다 :
var a = [1,2,3]; var sum = a.reduce(function(a, b) { return a + b; }, 0);
-
4.
var arr = [1,2,3,4]; var total=0; for(var i in arr) { total += arr[i]; }
-
5.
var total = 0; $.each(arr,function() { total += this; });
-
6.당신이 Lodash를 사용하는 일이 있다면 당신은 합계 기능을 사용할 수 있습니다
당신이 Lodash를 사용하는 일이 있다면 당신은 합계 기능을 사용할 수 있습니다
array = [1, 2, 3, 4]; sum = _.sum(array); // sum == 10
-
7.이것은 모든 항목에 걸쳐 반복하고, 합계 변수 각 반복에 추가하여 가능하다.
이것은 모든 항목에 걸쳐 반복하고, 합계 변수 각 반복에 추가하여 가능하다.
var array = [1, 2, 3]; for (var i = 0, sum = 0; i < array.length; sum += array[i++]);
자바 스크립트는 블록 범위 지정을 모르는, 그래서 합이 액세스 할 수 있습니다 :
console.log(sum); // => 6
동일한는 상기와 같이, 그러나 주석 간단한 함수로 제조 :
function sumArray(array) { for ( var index = 0, // The iterator length = array.length, // Cache the array length sum = 0; // The total amount index < length; // The "for"-loop condition sum += array[index++] // Add number on each iteration ); return sum; }
-
8.
arr.reduce(function (a, b) { return a + b; });
참조 : Array.prototype.reduce ()
-
9.
// Given array 'arr' var i = arr.length; var sum = 0; while (--i) sum += arr[i];
이 (I, 길이의 표준 실행 / 위의 평가 () 메소드를 실행 3.604 MS / 및 2.151 MS에 비해 (100 개 랜덤 정상 수치의 배열 1000 뻗은 측정) 평균 1.57 MS / 실행에 걸릴 , ++) 루프.
방법론 참고 : 자신의 자바 스크립트 엔진이 거의 크롬과 동일하므로이 테스트는 Google 애플리케이션 스크립트를 서버에서 실행되었다.
편집 : 대신 난 -의 --i은 0.12 밀리 초마다 실행 (난 - 1.7입니다) 저장
편집 : 이런 조어는이 모든 게시물을 신경 쓰지 않았다. 줄이거 () 메소드는 위에서 언급 한 사용, 그것은 단지 1 MS / 실행합니다.
-
10.또한 reduceRight을 사용할 수 있습니다.
또한 reduceRight을 사용할 수 있습니다.
[1,2,3,4,5,6].reduceRight(function(a,b){return a+b;})
21로서 출력 된 결과.
참조 : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/ReduceRight
-
11.나 같은 기능 oneliner을 찾고 누구? 이것을 가지고 :
나 같은 기능 oneliner을 찾고 누구? 이것을 가지고 :
sum= arr.reduce(function (a, b) {return a + b;}, 0);
-
12.OK,이 배열 아래를 상상 :
OK,이 배열 아래를 상상 :
const arr = [1, 2, 3, 4];
의 내가 어떤 포괄적 인 해답을 여기서 찾을 수 없습니다로 할 수있는 여러 가지 방법을 찾고 시작하자 :
1) 사용 내장 감소 ()
function total(arr) { if(!Array.isArray(arr)) return; return arr.reduce((a, v)=>a + v); }
2) 루프 사용
function total(arr) { if(!Array.isArray(arr)) return; let totalNumber = 0; for (let i=0,l=arr.length; i<l; i++) { totalNumber+=arr[i]; } return totalNumber; }
3) 고리 중에 사용
function total(arr) { if(!Array.isArray(arr)) return; let totalNumber = 0, i=-1; while (++i < arr.length) { totalNumber+=arr[i]; } return totalNumber; }
4) 배열 foreach 문 사용
function total(arr) { if(!Array.isArray(arr)) return; let sum=0; arr.forEach(each => { sum+=each; }); return sum; };
와 같이 호출 :
total(arr); //return 10
배열이 같은 프로토 타입을하지 않는 것이 좋습니다 ...
-
13.재미 방법 :
재미 방법 :
eval([1,2,3].join("+"))
-
14.표준 자바 스크립트 솔루션 :
표준 자바 스크립트 솔루션 :
var addition = []; addition.push(2); addition.push(3); var total = 0; for (var i = 0; i < addition.length; i++) { total += addition[i]; } alert(total); // Just to output an example /* console.log(total); // Just to output an example with Firebug */
이것은 (결과는 5이어야 함) 나를 위해 작동합니다. 나는 이러한 유형의 솔루션에 숨겨진 단점이 없기를 바랍니다.
-
15.
var totally = eval(arr.join('+'))
그런 식으로 당신은 배열에 이국적인 모든 종류의 것들을 넣을 수 있습니다.
var arr = ['(1/3)','Date.now()','foo','bar()',1,2,3,4]
난 단지 반 농담이야.
-
16.나는 자바 스크립트와 초보자 및 일반 코딩,하지만 나는 간단하고 배열의 숫자 합계 쉬운 방법은 다음과 같은 것을 발견 :
나는 자바 스크립트와 초보자 및 일반 코딩,하지만 나는 간단하고 배열의 숫자 합계 쉬운 방법은 다음과 같은 것을 발견 :
var myNumbers = [1,2,3,4,5] var total = 0; for(var i = 0; i < myNumbers.length; i++){ total += myNumbers[i]; }
기본적으로, 나는 내장 사용하지 않는 기능이 많은 솔루션을 보지 않았기 때문에이 기여하고 싶어하고,이 방법은 쓰기와 이해하기 쉽다.
-
17.자바 스크립트 코드의 짧은 조각이 일을 할 것입니다 :
자바 스크립트 코드의 짧은 조각이 일을 할 것입니다 :
var numbers = [1,2,3,4]; var totalAmount = 0; for (var x = 0; x < numbers.length; x++) { totalAmount += numbers[x]; } console.log(totalAmount); //10 (1+2+3+4)
-
18.몇몇 사람들은 Array.prototype으로에 .sum () 메소드를 추가 제안했다. 이것은 일반적으로 당신이 그것을 할 것을 제안하고 있지 않다, 그래서 나쁜 관행으로 간주됩니다.
몇몇 사람들은 Array.prototype으로에 .sum () 메소드를 추가 제안했다. 이것은 일반적으로 당신이 그것을 할 것을 제안하고 있지 않다, 그래서 나쁜 관행으로 간주됩니다.
당신은 여전히 다음 일을 주장하는 경우,이 그것을 작성하는 간결한 방법입니다 :
Array.prototype.sum = function() {return [].reduce.call(this, (a,i) => a+i, 0);}
다음 [1,2] .sum (); // 삼
프로토 타입에 추가 기능 및 ES5 ES6 함수의 혼합물을 사용하여 구문 화살표되어 있습니다. 기능이 방법은 당신이 운영하고있는 배열에서이 컨텍스트를 얻을 수 있도록하기 위해 선언된다. 나는이 => 간결함을 위해 통화를 줄이고 내부에서 사용.
-
19.for 루프를 사용하여
for 루프를 사용하여
const array = [1, 2, 3, 4]; let result = 0; for (let i = 0; i < array.length - 1; i++) { result += array[i]; } console.log(result); // Should give 10
심지어 foreach 루프 :
const array = [1, 2, 3, 4]; let result = 0; array.forEach(number => { result += number; }) console.log(result); // Should give 10
간단하게하기 위해 사용 감소 :
const array = [10, 20, 30, 40]; const add = (a, b) => a + b const result = array.reduce(add); console.log(result); // Should give 100
-
20.초기 값으로 필요가 없습니다! 어떤 초기 값이 전달되지 않은 경우이므로, 콜백 함수는리스트의 첫 번째 요소를 호출하지 않고, 첫 번째 요소 대신 초기 값으로 전달된다. 아주 멋진 기능 :
초기 값으로 필요가 없습니다! 어떤 초기 값이 전달되지 않은 경우이므로, 콜백 함수는리스트의 첫 번째 요소를 호출하지 않고, 첫 번째 요소 대신 초기 값으로 전달된다. 아주 멋진 기능 :
[1, 2, 3, 4].reduce((a, x) => a + x) // 10 [1, 2, 3, 4].reduce((a, x) => a * x) // 24 [1, 2, 3, 4].reduce((a, x) => Math.max(a, x)) // 4 [1, 2, 3, 4].reduce((a, x) => Math.min(a, x)) // 1
-
21.하나는이 구현의 아름다움을 이해하는 데 시간이 걸릴 수 있지만 여기에 사용 스택 알고리즘이 우아한 한 줄의 솔루션입니다.
하나는이 구현의 아름다움을 이해하는 데 시간이 걸릴 수 있지만 여기에 사용 스택 알고리즘이 우아한 한 줄의 솔루션입니다.
const getSum = arr => (arr.length === 1) ? arr[0] : arr.pop() + getSum(arr); getSum([1, 2, 3, 4, 5]) //15
기본적으로,이 함수는 배열 어레이가 정확히 하나 개의 항목이 포함되어 있는지 여부를 확인을 받아 들인다. false의 경우, 그것은 스택의 마지막 항목을 팝업하고 업데이트 된 배열을 반환합니다.
이 코드의 아름다움 함수 도착 [0]이 검사하는 무한 루프를 방지하기 위해 포함된다. 그것이 마지막 항목에 도달하면, 그것은 전체 합계를 반환합니다.
-
22.당신은) (람다 식 방법을 줄일 결합 할 수 있습니다 :
당신은) (람다 식 방법을 줄일 결합 할 수 있습니다 :
[1, 2, 3, 4].reduce((accumulator, currentValue) => accumulator + currentValue);
-
23.사용 감소
사용 감소
도착하자 = [1, 2, 3, 4; 합이 = ((V, I) => (V) + I) arr.reduce하자; CONSOLE.LOG (합);
-
24.나는 모든 대답은 '감소'솔루션을가는 것을 보았다
나는 모든 대답은 '감소'솔루션을가는 것을 보았다
var array = [1,2,3,4] var total = 0 for (var i = 0; i < array.length; i++) { total += array[i] } console.log(total)
-
25.배열이 문자열로 구성하면 하나의 코드를 변경해야합니다. 어레이는 데이터뱅크 요청에서 그 결과 인 경우에, 케이스 일 수있다. 이 코드는 작동합니다 :
배열이 문자열로 구성하면 하나의 코드를 변경해야합니다. 어레이는 데이터뱅크 요청에서 그 결과 인 경우에, 케이스 일 수있다. 이 코드는 작동합니다 :
alert( ["1", "2", "3", "4"].reduce((a, b) => Number(a) + Number(b), 0) );
여기서, [ "1", "2", "3", "4"] IST 문자열 배열 및 기능 번호 () 숫자 스트링을 변환한다.
-
26.정렬 배열 시작 합 형태 작은 번호 (니펫 nonsort 방송과의 차이)
정렬 배열 시작 합 형태 작은 번호 (니펫 nonsort 방송과의 차이)
[...arr].sort((a,b)=>a-b).reduce((a,c)=>a+c,0)
도착 =. 6.9, 0.1, 0.1, 0.1, 0.1] 합 arr.reduce = ((a, c) => A + C, 0) sortSum = ... 도착] .sort ((a, b) => A-B) .reduce ((a, c) => A + C, 0) CONSOLE.LOG ( '합계', 합); 을 console.log ( 'sortSum', sortSum); CONSOLE.LOG ( '합 sortSum ==', 합계 == sortSum); // .sort 우리는 ((a, b) => A-B) 대신 .sort () 때문에 사용 // 그 문자열과 같은 두 번째 치료 요소 (그래서 잘못된 방법으로) // 예컨대 [1,10,9,20,93] .sort () -> [1, 10, 20, 9, 93]
숫자의 다차원 배열 arr.flat (무한대)를 사용
도착 = [[[1,2,3,4], [1,2,3,4], [1,2,3,4], [1,2,3,4], [1,2,3,4], [1,2,3,4]]; 합 = arr.flat (무한대) .reduce ((a, c) => A + C, 0); CONSOLE.LOG (합); // (60)
-
27.여기에 트릭 쿨, 안 배열의 길이를 캐싱 안전 기존의 답변이 많은 니트 픽을 가지고있다.
여기에 트릭 쿨, 안 배열의 길이를 캐싱 안전 기존의 답변이 많은 니트 픽을 가지고있다.
function arraySum(array){ var total = 0, len = array.length; for (var i = 0; i < len; i++){ total += array[i]; } return total; }; var my_array = [1,2,3,4]; // Returns 10 console.log( arraySum( my_array ) );
JS 컴파일러 길이를 계산하는 루프의 각 반복으로 배열 거쳐야 배열의 길이를 캐싱없이, 대부분의 경우 불필요한 오버 헤드이다. 그것은 한 후 우려의 작은 있도록 V8과 현대적인 브라우저의 많은, 우리를 위해이 최적화하지만이 간단한 캐싱 혜택이 구형 장치가있다.
길이 변화에 따라 캐싱의 경우 예상치 못한 부작용을 일으킬 수있는 당신이 만약있는 거 당신이 길이를 캐싱,하지만 목적의 재사용 기능을 위해 배열을 가지고 함께의을 값을 추가하는 것입니다있는 이유를 모르고 위대한 맞습니다.
다음은이 arraySum 기능을위한 CodePen 링크입니다. http://codepen.io/brandonbrule/pen/ZGEJyV
그것은이 나와 함께 붙어 오래된 사고 방식입니다 가능하지만, 나는이 상황에서 그것을 사용하는 단점이 표시되지 않습니다.
-
28.사람들은 정말 좋은 답변이지만, 경우에 대비 숫자는 질문 (1,2,3,4) 쉽게 공식을 적용하여 해당 작업을 수행 할 수 있습니다에 같은 순서에있는 경우 (N * (N + 1)) / 2, 여기서 n 마지막 번호는
사람들은 정말 좋은 답변이지만, 경우에 대비 숫자는 질문 (1,2,3,4) 쉽게 공식을 적용하여 해당 작업을 수행 할 수 있습니다에 같은 순서에있는 경우 (N * (N + 1)) / 2, 여기서 n 마지막 번호는
-
29.
Object.defineProperty(Object.prototype, 'sum', { enumerable:false, value:function() { var t=0;for(var i in this) if (!isNaN(this[i])) t+=this[i]; return t; } }); [20,25,27.1].sum() // 72.1 [10,"forty-two",23].sum() // 33 [Math.PI,0,-1,1].sum() // 3.141592653589793 [Math.PI,Math.E,-1000000000].sum() // -999999994.1401255 o = {a:1,b:31,c:"roffelz",someOtherProperty:21.52} console.log(o.sum()); // 53.519999999999996
-
30.이것은 훨씬 더 쉽게
이것은 훨씬 더 쉽게
function sumArray(arr) { var total = 0; arr.forEach(function(element){ total += element; }) return total; } var sum = sumArray([1,2,3,4]) console.log(sum)
from https://stackoverflow.com/questions/1230233/how-to-find-the-sum-of-an-array-of-numbers by cc-by-sa and MIT license
'JQUERY' 카테고리의 다른 글
[JQUERY] jQuery를 사용하면 화면에 DIV를 중앙에 (0) | 2020.09.24 |
---|---|
[JQUERY] jQuery를 사용하여 드롭 다운 목록 (선택 상자)에서 선택한 텍스트를 가져옵니다 (0) | 2020.09.24 |
[JQUERY] jQuery를 이벤트 키 누르기 : 어떤 키를 눌렀는지? (0) | 2020.09.24 |
[JQUERY] 정규 표현식은 비 ASCII 문자와 일치 하는가? (0) | 2020.09.24 |
[JQUERY] 어떻게 각도와 jQuery를 사용 하는가? (0) | 2020.09.24 |