我有一組數字,顯示如下;如何將數組中的每個數字相互比較? (javascript)
var data = "615:415,600:400,600:400,300:300"
每個數字表示的x/y座標,並且我想旁邊添加其基於數量的範圍內的頻率計算出的各一個的值。
因此,我希望能夠比較每個值與該字符串中的所有其他值,並從中執行以下功能;
- 從字符串中刪除的數目,如果它是一個重複,並添加:1
- 如果X/Y的數字針對任何其他號碼的範圍的15內的是兩個,添加:1
- 如果沒有匹配,地址:0
- 轉成數組
因此,使用數據線,將它轉化爲;
var data = "615:415:1, 600:400:2, 300:300:0"
我一直在嘗試這種使用減速功能做的,但我與主要步驟2.我希望有人可以幫忙掙扎?
Thanks - Code + Plunk below!
http://plnkr.co/edit/zPW1844cLnUFAlEI77jq?p=preview
var result = [];
var data = "615:415,600:400,600:400,300:300"
var count = 0;
var reducer = function(p, c, i, a) {
if (p && p !== c) {
var _t = p.split(":");
result.push({
x: _t[0],
y: _t[1],
value: count
});
count = 0;
if (i === a.length - 1) {
_t = c.split(":");
result.push({
x: _t[0],
y: _t[1],
value: count
});
}
}
else {
count++;
}
return c
}
data.split(',').sort().reduce(reducer);
console.log(result)
_ 「如果X/Y號針對任何其他號碼的範圍內15均,加:1」 _你爲什麼要加上'0'在'300:300: 0'?爲什麼'2'連接在'600:400:2'? – guest271314
@ guest271314這個想法是有一個跑步計數器,所以如果一個數字沒有重複/不在任何其他數字的範圍內,它應該被設置爲0,因此可以將其與其他數字進行比較。它是'600:400:2',因爲它在'615:415'的範圍內,所以它獲得+1,但也因爲它是重複的,所以它獲得了另一個+1(重複刪除) – ggt