Cần viết hàm JavaScript nhận bất kỳ số lượng đối số (kiểu Number). Hàm tính tất cả các tổng có thể của phép cộng và trừ.
Ví dụ - Nếu đối số là 1, 2, 3. Tất cả tổ hợp:
1 + 2 + 3 1 - 2 - 3 1 + 2 - 3 1 - 2 + 3
Cuối cùng, hàm trả về tổng gần 0 nhất. Trong trường hợp này, câu trả lời là 0.
Ví dụ
const findSmallestPositive = (...arr) => {
let set = new Set([Math.abs(arr[0])]);
for (let i = 1; i < arr.length; i++){
const secondSet = new Set;
for (let d of Array.from(set)){
secondSet.add(Math.abs(d + arr[i]))
secondSet.add(Math.abs(d - arr[i]))
};
set = secondSet;
};
return Math.min(...Array.from(set))
};
console.log(findSmallestPositive(5,3))
console.log(findSmallestPositive(1,2,3))
console.log(findSmallestPositive(1,2,3,5))
Kết quả
Điều này sẽ tạo ra đầu ra sau:
2 0 1