私は、次のように表示される一連の番号を持っています。どのように配列のすべての数をお互いに比較するのですか? (JavaScript)
var data = "615:415,600:400,600:400,300:300"
各番号はy座標、及びIは、範囲内の数の頻度に基づいて計算されるそれぞれの次の値を追加したい/ Xを表します。
だから、私はこの文字列内の他のすべての値と比較することができたいと思います。
- が重複している場合は、文字列から番号を削除し、追加:1
- をX/Y番号が追加、任意の他の数に対する15の範囲内で両方の場合:1
- 一致がない場合は、追加:0
- 電源を入れて、アレイ
にようにデータ列を使用して、それはに変換されます。
var data = "615:415:1, 600:400:2, 300:300:0"
私は減速機能を使ってこれを実行しようとしているが、私は、誰かが助けることができる願っています主に、ステップ2で苦労していますか?
ありがとうございます - コード+以下のおしゃべり!
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" _なぜあなたは300 'に '0'を追加します:300: 0?なぜ '2'は' 600:400:2'に連結されていますか? – guest271314
@ guest271314考えているのは、実行中のカウンタを持つことです。したがって、数値に重複がない/他の数値の範囲内にない場合は、0に設定して他の数値と比較する必要があります。それは '615:415'の範囲にあるので、 '600:400:2'です。+1を取得しますが、重複して別の+1を取得します(重複を削除したもの) – ggt