0
A
回答
2
這將過濾掉哪些是消極的所有變量和陣列中具有積極作用
var arr = [-1, -5, 4, 5, 3, -5];
arr = arr.filter(function(a, b){
if(a < 0 && arr.indexOf(-1*a) > -1){
return 0;
}
if(a < 0 && arr.indexOf(a) != b){
\t return 0;
}
return 1;
})
console.log(arr);
+0
完美,謝謝! –
0
您需要遍歷數組,並添加所有那些沒有他們的絕對值已經在第二個陣列:
var noDups = [];
$.each(arr, function(i, v){
if($.inArray(abs(v), noDups) === -1 || $.inArray(v,noDups)===-1){
noDups.push(v);
}
});
這是改編自this answer,這非常相似。
1
您可以使用filter()
與Math.abs()
var arr1 = [-1, -5, 5, 4, 3];
var arr2 = [-1, -5, -5, 4, 3];
function customFilter(arr) {
return arr.filter(function(e) {
if (e > 0) return true;
else {
var abs = Math.abs(e)
if (arr.indexOf(abs) != -1) return false;
else return !this[e] ? this[e] = 1 : false;
}
}, {})
}
console.log(customFilter(arr1))
console.log(customFilter(arr2))
0
你可以檢查標誌,或者如果不包括絕對值。
var array = [-1, -5, 4, 5, 3],
result = array.filter((a, _, aa) => a >= 0 || !aa.includes(Math.abs(a)));
console.log(result);
0
使用過濾器
var arr = [-1, -5, 4, 5, 3, 4, -6, 4, 6];
console.log(removeNegativesCommon(arr));
function removeNegativesCommon(arr){
return arr.filter((el) => {
if(el < 0 && arr.indexOf(Math.abs(el)) != -1){
return false;
} else {
return el;
}
})
}
0
這裏是不使用重複indexOf
一個版本。它使用來自my previously linked post(uniq函數)的解決方案,以及之前已經包含爲正數的負數消除。
var arr = [-1, -5, 4, 5, 3];
function uniq(a) {
var seen = {};
return a.filter(function(item) {
return seen.hasOwnProperty(item) ? false : (seen[item] = true);
});
}
function preRemoveNegatives(a) {
let table = {};
a.filter(e => e >= 0).forEach(e => table[e] = true);
return a.filter(e => e >= 0 || !table[-e]);
}
console.log(uniq(preRemoveNegatives(arr)));
相關問題
- 1. 刪除PowerShell陣列中的重複值
- 2. 刪除矩陣中的重複列
- 3. 刪除陣列中的重複項(C++)
- 4. 刪除重複和陣列
- 5. 刪除重複陣列,從陣列
- 6. 刪除陣列/陣列列表中的重複字符串
- 7. VBA刪除重複值的陣列,其包括相同的值
- 8. 從陣列中刪除重複項
- 9. 如何從陣列中刪除所有重複值的實例
- 10. 刪除陣列的重複值插入到數據庫中
- 11. 刪除陣列中的空值並複製到新陣列
- 12. Matlab數據:刪除列中的負值?
- 13. 從JS陣列刪除重複
- 14. 關於重複數據刪除陣列
- 15. 高級刪除陣列重複
- 16. 遍歷陣列並刪除重複
- 17. MongoDB:刪除陣列列表中的重複條目
- 18. 刪除重複值
- 19. 刪除重複的列dplyr
- 20. 刪除負值
- 21. 刪除重複鍵值對中的值在列表中
- 22. 刪除R中同一數據幀列中的重複值/重複值
- 23. 刪除重複值從陣列多個參數
- 24. 如何使用LINQ刪除陣列中的重複項
- 25. 刪除在陣列中有重複的所有項目Javascript
- 26. 從陣列中刪除重複的對象在JavaScript
- 27. 從面陣列中刪除重複的面 - Three.js
- 28. 完全刪除陣列中的重複項目
- 29. 從讀取器填充的陣列中刪除重複項
- 30. 從NSMutable陣列中刪除重複的valuse
[拔下JavaScript數組複製(https://stackoverflow.com/questions/9229645/remove-duplicates-from-javascript-array) – ASDFGerte
有你自己嘗試新鮮事物? – ItamarG3
@ASDFGerte不,因爲這些不重複。它們的絕對值是重複的。 – ItamarG3