Chúng ta phải viết một hàm nhận vào một mảng và trả về một đối tượng có hai thuộc tính dương và âm. Cả hai đều phải là một mảng chứa tất cả các âm dương và âm tương ứng từ mảng.
Điều này khá đơn giản, chúng tôi sẽ sử dụng phương thức Array.prototype.reduce () để chọn các phần tử mong muốn và đặt chúng vào một đối tượng của hai mảng.
Ví 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 ] }