5

配列Bを生成するために、配列Aにパッチとして効果的に適用できるオブジェクトを生成したいと思います。

2つの値を比較し、同じ場合はtrueを返し、そうでない場合はfalseを返す関数isSame(および2つの配列要素を比較することを目的とする)が与えられた場合、2つの配列の差を計算してリストを返す既知のアルゴリズムはありますか?特定の違いの?違いは、次のセットで構成されます。インデックスYで削除されたX要素と、インデックスY挿入された次の要素

私はそのような作品を書いたのですが、現時点ではバグがあり、それを進めるのに苦労しています。他の誰かがすでにこれを行っているかもしれないときに、車輪の再発明をしているのではないかと心配しています。http://jsfiddle.net/G6tYt/1/

4

1 に答える 1

2

比較を深く、オブジェクトと配列の両方に寛容にしたい場合は、私がしばらく前に書いたこのツールが役立つかもしれません:

https://github.com/danski/spahql/blob/master/src/SpahQL.DataHelper.js#L18

SpahQL.DataHelper.compare(
  {"a": "aval", "b": "bval", "c": "cval", "arr": [0,1,2]},
  {"a": "modified", "c": "cval", "d": "added", "arr": [0,1,2,3]}
);
// -> {"/": "~", "/a": "~", "/b": "-", "/d": "+", "/arr": "~", "/arr/3": "+"}
于 2013-02-04T14:04:35.653 に答える