Vấn đề
Chúng tôi được yêu cầu viết một hàm JavaScript có trong một loạt các số [dương và âm]. Hàm của chúng tôi nên tính toán và trả về tổng của tất cả các số dương có trong mảng.
Thí dụ
Sau đây là mã -
& nbsp; bản demo trực tiếp
const arr = [5, -5, -3, -5, -7, -8, 1, 9]; const sumPositives = [arr = []] => { const isPositive = num => typeof num === 'number' && num > 0; const res = arr.reduce[[acc, val] => { if[isPositive[val]]{ acc += val; }; return acc; }, 0]; return res; }; console.log[sumPositives[arr]];
Đầu ra
Sau đây là đầu ra bảng điều khiển -
15
Cập nhật vào ngày 17 tháng 4 năm 2021 11:54:20
- Câu hỏi và câu trả lời liên quan
- Đưa ra một loạt các số nguyên trở lại tích cực, có những tiêu cực tương đương có trong đó trong JavaScript
- Tổng của tất cả các số nguyên tố trong một mảng - javascript
- Tổng của tất cả các phần tử không lặp lại của một mảng javascript
- Tổng xor tổng của tất cả các cặp trong một mảng trong c ++
- Tổng tất cả giá trị trùng lặp trong mảng - javascript
- Tổng XOR của tất cả các cặp trong một mảng trong C ++
- Tổng các phần tử riêng biệt của một mảng trong javascript
- Tổng tất cả các giá trị trùng lặp trong mảng trong javascript
- Tổng hợp tất cả các phần tử tương tự trong một mảng - javascript
- Tổng các phần tử riêng biệt của một mảng - javascript
- Di chuyển tất cả các số 0 có mặt trong mảng đến cuối trong JavaScript
- Tổng của tất cả các bội số trong javascript
- Tìm tổng của một phạm vi trong một mảng javascript
- Tìm tổng số phần tử mong muốn trong một mảng trong JavaScript
- Sản phẩm của tất cả các số khác một mảng trong javascript
Chúng ta phải viết một hàm có trong một mảng và trả về một đối tượng có hai thuộc tính là tích cực và tiêu cực. Cả hai nên là một mảng chứa tất cả các mục tích cực và tiêu cực tương ứng từ mảng.
Cái này khá đơn giản, chúng ta sẽ sử dụng phương thức mảng.prototype.Reduce [] để chọn các phần tử mong muốn và đưa chúng vào một đối tượng của hai mảng.
Thí dụ
const arr = [ [12, -45, 65, 76, -76, 87, -98], [54, -65, -98, -23, 78, -9, 1, 3], [87, -98, 3, -2, 123, -877, 22, -5, 23, -67] ]; const splitArray = [arr] => { return arr.reduce[[acc, val] => { if[val < 0]{ acc['negative'].push[val]; } else { acc['positive'].push[val]; } return acc; }, { positive: [], negative: [] }] }; for[let i = 0; i < arr.length; i++]{ console.log[splitArray[arr[i]]]; }
Đầu ra
Đầu ra trong bảng điều khiển sẽ là -
{ positive: [ 12, 65, 76, 87 ], negative: [ -45, -76, -98 ] } { positive: [ 54, 78, 1, 3 ], negative: [ -65, -98, -23, -9 ] } { positive: [ 87, 3, 123, 22, 23 ], negative: [ -98, -2, -877, -5, -67 ] }
Cập nhật vào ngày 21 tháng 8 năm 2020 14:48:57
- Câu hỏi và câu trả lời liên quan
- Đảo ngược số lượng âm và dương trong javascript
- Làm số mảng javascript âm
- Các số lặp với các giá trị đối tượng và đầu ra đẩy vào một mảng - javaScript?
- Thực hiện phân loại bong bóng với số âm và dương - JavaScript?
- Biểu thức Lambda trong Python để sắp xếp lại các số dương và âm
- Đệ quy trong mảng để tìm số lẻ và đẩy sang biến mới JavaScript
- Loại bỏ các số âm khỏi một mảng trong Java
- Sự khác biệt giữa số và số chuỗi có trong một mảng trong JavaScript
- Đóng góp tích cực, tiêu cực và 0 của một mảng trong JavaScript
- Chương trình Python để đếm số tích cực và âm trong danh sách
- Biểu thức Lambda trong chương trình Python để sắp xếp lại các số dương và âm
- Chương trình Golang để in tổng của tất cả các số dương và số âm trong danh sách
- Làm thế nào tôi có thể chia một mảng số thành các chữ số riêng lẻ trong JavaScript?
- Đi qua một mảng và chỉ tổng số javascript
- Cách phân tách bảng chữ cái và số khỏi mảng bằng JavaScript
Xem thảo luận
Cải thiện bài viết
Lưu bài viết
Xem thảo luận
Cải thiện bài viết
Lưu bài viết
Đọc
For example, if the input array is [-1, 2, -3, 4, 5, 6, -7, 8, 9], then the output should be [9, -7, 8, -3, 5, -1, 2, 4, 6]
Note: The partition process changes relative order of elements. I.e. the order of the appearance of elements is not maintained
with this approach. See this for maintaining order of appearance of elements in this problem.
The solution is to first separate positive and negative numbers using partition process of QuickSort. In the partition process, consider 0 as value of pivot element so that all negative numbers are placed before positive numbers. Once negative and positive numbers are
separated, we start from the first negative number and first positive number and swap every alternate negative number with next positive number.
Bàn luận
Một mảng chứa cả số dương và số âm theo thứ tự ngẫu nhiên. Sắp xếp lại các phần tử mảng để các số dương và âm được đặt thay thế. Số lượng số dương và âm không cần phải bằng nhau. Nếu có nhiều số tích cực hơn, chúng xuất hiện ở cuối mảng. Nếu có nhiều số âm hơn, chúng cũng xuất hiện ở cuối mảng. Ví dụ, nếu mảng đầu vào là [-1, 2, -3, 4, 5, 6, -7, 8, 9], thì Đầu ra phải là [9, -7, 8, -3, 5, -1, 2, 4, 6] Lưu ý: Quá trình phân vùng thay đổi thứ tự tương đối của các yếu tố. I E. Thứ tự xuất hiện của các yếu tố không được duy trì với phương pháp này. Xem điều này để duy trì thứ tự xuất hiện của các yếu tố trong vấn đề này. Giải pháp trước tiên là riêng biệt các số dương và âm sử dụng quá trình phân vùng của QuickSort. Trong quá trình phân vùng, hãy xem xét 0 là giá trị của phần tử trục để tất cả các số âm được đặt trước các số dương. Khi các số âm và dương được phân tách, chúng tôi bắt đầu từ số âm đầu tiên và số dương đầu tiên và hoán đổi mỗi số âm thay thế với số dương tiếp theo. & NBSP; & NBSP;
150
151
152
JavaScript
151
150
function
rearrange[arr,n]
158
150
const arr = [ [12, -45, 65, 76, -76, 87, -98], [54, -65, -98, -23, 78, -9, 1, 3], [87, -98, 3, -2, 123, -877, 22, -5, 23, -67] ]; const splitArray = [arr] => { return arr.reduce[[acc, val] => { if[val < 0]{ acc['negative'].push[val]; } else { acc['positive'].push[val]; } return acc; }, { positive: [], negative: [] }] }; for[let i = 0; i < arr.length; i++]{ console.log[splitArray[arr[i]]]; }3
const arr = [ [12, -45, 65, 76, -76, 87, -98], [54, -65, -98, -23, 78, -9, 1, 3], [87, -98, 3, -2, 123, -877, 22, -5, 23, -67] ]; const splitArray = [arr] => { return arr.reduce[[acc, val] => { if[val < 0]{ acc['negative'].push[val]; } else { acc['positive'].push[val]; } return acc; }, { positive: [], negative: [] }] }; for[let i = 0; i < arr.length; i++]{ console.log[splitArray[arr[i]]]; }4
const arr = [ [12, -45, 65, 76, -76, 87, -98], [54, -65, -98, -23, 78, -9, 1, 3], [87, -98, 3, -2, 123, -877, 22, -5, 23, -67] ]; const splitArray = [arr] => { return arr.reduce[[acc, val] => { if[val < 0]{ acc['negative'].push[val]; } else { acc['positive'].push[val]; } return acc; }, { positive: [], negative: [] }] }; for[let i = 0; i < arr.length; i++]{ console.log[splitArray[arr[i]]]; }3
const arr = [ [12, -45, 65, 76, -76, 87, -98], [54, -65, -98, -23, 78, -9, 1, 3], [87, -98, 3, -2, 123, -877, 22, -5, 23, -67] ]; const splitArray = [arr] => { return arr.reduce[[acc, val] => { if[val < 0]{ acc['negative'].push[val]; } else { acc['positive'].push[val]; } return acc; }, { positive: [], negative: [] }] }; for[let i = 0; i < arr.length; i++]{ console.log[splitArray[arr[i]]]; }6
const arr = [ [12, -45, 65, 76, -76, 87, -98], [54, -65, -98, -23, 78, -9, 1, 3], [87, -98, 3, -2, 123, -877, 22, -5, 23, -67] ]; const splitArray = [arr] => { return arr.reduce[[acc, val] => { if[val < 0]{ acc['negative'].push[val]; } else { acc['positive'].push[val]; } return acc; }, { positive: [], negative: [] }] }; for[let i = 0; i < arr.length; i++]{ console.log[splitArray[arr[i]]]; }3
const arr = [ [12, -45, 65, 76, -76, 87, -98], [54, -65, -98, -23, 78, -9, 1, 3], [87, -98, 3, -2, 123, -877, 22, -5, 23, -67] ]; const splitArray = [arr] => { return arr.reduce[[acc, val] => { if[val < 0]{ acc['negative'].push[val]; } else { acc['positive'].push[val]; } return acc; }, { positive: [], negative: [] }] }; for[let i = 0; i < arr.length; i++]{ console.log[splitArray[arr[i]]]; }8
151
154
155
158
{ positive: [ 12, 65, 76, 87 ], negative: [ -45, -76, -98 ] } { positive: [ 54, 78, 1, 3 ], negative: [ -65, -98, -23, -9 ] } { positive: [ 87, 3, 123, 22, 23 ], negative: [ -98, -2, -877, -5, -67 ] }2
151
{ positive: [ 12, 65, 76, 87 ], negative: [ -45, -76, -98 ] } { positive: [ 54, 78, 1, 3 ], negative: [ -65, -98, -23, -9 ] } { positive: [ 87, 3, 123, 22, 23 ], negative: [ -98, -2, -877, -5, -67 ] }2
151
{ positive: [ 12, 65, 76, 87 ], negative: [ -45, -76, -98 ] } { positive: [ 54, 78, 1, 3 ], negative: [ -65, -98, -23, -9 ] } { positive: [ 87, 3, 123, 22, 23 ], negative: [ -98, -2, -877, -5, -67 ] }6
158
159
const arr = [ [12, -45, 65, 76, -76, 87, -98], [54, -65, -98, -23, 78, -9, 1, 3], [87, -98, 3, -2, 123, -877, 22, -5, 23, -67] ]; const splitArray = [arr] => { return arr.reduce[[acc, val] => { if[val < 0]{ acc['negative'].push[val]; } else { acc['positive'].push[val]; } return acc; }, { positive: [], negative: [] }] }; for[let i = 0; i < arr.length; i++]{ console.log[splitArray[arr[i]]]; }0
151
150
158
4 -3 5 -1 6 -7 2 8 93
158
4 -3 5 -1 6 -7 2 8 95
158
4 -3 5 -1 6 -7 2 8 97
158
4 -3 5 -1 6 -7 2 8 99
158
1151
{ positive: [ 12, 65, 76, 87 ], negative: [ -45, -76, -98 ] } { positive: [ 54, 78, 1, 3 ], negative: [ -65, -98, -23, -9 ] } { positive: [ 87, 3, 123, 22, 23 ], negative: [ -98, -2, -877, -5, -67 ] }2
{ positive: [ 12, 65, 76, 87 ], negative: [ -45, -76, -98 ] } { positive: [ 54, 78, 1, 3 ], negative: [ -65, -98, -23, -9 ] } { positive: [ 87, 3, 123, 22, 23 ], negative: [ -98, -2, -877, -5, -67 ] }2
const arr = [ [12, -45, 65, 76, -76, 87, -98], [54, -65, -98, -23, 78, -9, 1, 3], [87, -98, 3, -2, 123, -877, 22, -5, 23, -67] ]; const splitArray = [arr] => { return arr.reduce[[acc, val] => { if[val < 0]{ acc['negative'].push[val]; } else { acc['positive'].push[val]; } return acc; }, { positive: [], negative: [] }] }; for[let i = 0; i < arr.length; i++]{ console.log[splitArray[arr[i]]]; }3
{ positive: [ 12, 65, 76, 87 ], negative: [ -45, -76, -98 ] } { positive: [ 54, 78, 1, 3 ], negative: [ -65, -98, -23, -9 ] } { positive: [ 87, 3, 123, 22, 23 ], negative: [ -98, -2, -877, -5, -67 ] }0
150
151
{ positive: [ 12, 65, 76, 87 ], negative: [ -45, -76, -98 ] } { positive: [ 54, 78, 1, 3 ], negative: [ -65, -98, -23, -9 ] } { positive: [ 87, 3, 123, 22, 23 ], negative: [ -98, -2, -877, -5, -67 ] }8
{ positive: [ 12, 65, 76, 87 ], negative: [ -45, -76, -98 ] } { positive: [ 54, 78, 1, 3 ], negative: [ -65, -98, -23, -9 ] } { positive: [ 87, 3, 123, 22, 23 ], negative: [ -98, -2, -877, -5, -67 ] }9
158
5
6
7
{ positive: [ 12, 65, 76, 87 ], negative: [ -45, -76, -98 ] } { positive: [ 54, 78, 1, 3 ], negative: [ -65, -98, -23, -9 ] } { positive: [ 87, 3, 123, 22, 23 ], negative: [ -98, -2, -877, -5, -67 ] }2
151
function
1151
function
3
function
8
151
function
7function
8
Output:
4 -3 5 -1 6 -7 2 8 9
15
115
4
3O[n] where n is number of elements in given array. As, we are using a loop to traverse N times so it will cost us O[N] time.
Auxiliary Space: O[1], as we are not using any extra space.
151
function
5