私はいくつかの条件に従って既存のオブジェクトから新しいオブジェクトの配列を抽出する方法を見つけようとしています。要素がすでに存在する場合は、新しい配列をコピーしません。フィルタリング与えられた値でオブジェクトの配列を作成し、同じ値に従って複製を追加しないようにする
だから、これは私が持っているオブジェクトです。addressesObj
今、私は、例えば特定の郵便番号でオブジェクトをフィルタ処理したいと思います:
`
var PostCode = "TN37 7AJ "
var newAddressesObj = addressesObj.filter(function (duties) {
return duties.Address.Postcode === PostCode
});
`
これが正しく動作する、それが持つ配列を私に戻っています2つのオブジェクト:今
私は同じPでレコードを削除したいと思い、この新しい配列からostcodeので、私は1つだけのオブジェクトを返す - それはどうすればいいですか?
私はフィルタと一緒に$ .inArrayを使用して試してみましたが、私は何か間違ったことをやって、私はまた、一度にすべてのことをしたいと思っ - このような何か:
var PostCode = "TN37 7AJ " var newAddressesObj = addressesObj.filter(function (duties) { return duties.Address.Postcode === PostCode && $.inArray(PostCode, addressesObj == -1 });
任意のアイデア?
おかげ
使用(https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/find?v=control)[検索]。 'find'は最初のマッチの後に停止します。 – Titus
ああ、私はそれを得る。特定の郵便番号を持つすべての個別のオブジェクトを抽出したいとします。 – Titus
私は私の質問に何か言及するのを忘れました...実際には、私は2要素ではなく1を抽出したいオブジェクトから。 これは実際の実装です。 var StartPCode = "TN37 7AJ"、EndPCode = "TN38 8EW" var newAddressesObj = addressesObj.filter(function(x){ return(x.Address.StartPCode === StartPCode || x .Address.EndtPcode === EndPCode)&& $ .inArray(PCode、addressesObj == -1}); 最後にdiffの郵便番号を持つ2要素のオブジェクトがありますので、Google MapsとShowに渡すことができますルートは基本的に... あなたのクイックリプレイのためにとにかくありがとうtho – Daniele