に基づいてインデックスのJavaScriptオブジェクトに行をスプライシング?は、その値
など。私が挿入したい行にデータ[122,65]が含まれている場合、すべての行の最初の値に対して値 '122'をテストし、次に返されたインデックスに行をスプライスする必要があります。各行値の2番目の値(上記の例では50,50,50)は考慮に入れないでください。この場合、newdデータは148より小さく、25よりも大きいので2行目として挿入する必要があります。前の2行目が3行目になります。
私は、これは今日のことであり、次のコードに遭遇しましたが、これは私の後ろの機能性を示唆していますが、このインスタンスではうまく機能しません。
function findInsertionPoint(sortedArr, val, comparator) {
var low = 0, high = sortedArr.length;
var mid = -1, c = 0;
while(low < high) {
mid = parseInt((low + high)/2);
c = comparator(sortedArr[mid], val);
if(c < 0) {
low = mid + 1;
}else if(c > 0) {
high = mid;
}else {
return mid;
}
//alert("mid=" + mid + ", c=" + c + ", low=" + low + ", high=" + high);
}
return low;
}
/**
* A simple number comparator
*/
function numComparator(val1, val2) {
if(val1 > val2) {
return 1;
}else if(val1 < val2) {
return -1;
}
return 0;
}
上記のコードは、誰もが解決策を考え出すのに役立ちますが、私は、私はとにかくそれを共有するだろうと思った場合、私は知りません。私はもちろん、これを達成するためのjavascript/jQueryメソッドを公開しています。
ありがとうございます。
なぜオブジェクトではなく配列を使用していますか? – epascarello
申し訳ありませんが、私が取り組まなければならないアプリの性質です。それは私の選択ではありません。残念ながら私は、アプリケーション自体のデータ処理方法を変更する立場にはありません。 – gordyr