以下の2つの配列を参照してください。まず、修復配列をバックエンドに送り、失敗した挿入を返すだけですが、実際にはより大きな失敗メッセージから配列を作成します基本的に次のようになります:複数のプロパティを持つ2つの配列をフィルタリングする
var sentRepairs = [
{id: 12345, car: 'Nissan', Model: 'Almera', RepairDate: new Date('2016-04-06'), Modificator: 'User200' },
{id: 12346, car: 'Nissan', Model: 'Almera', RepairDate: new Date('2016-04-07'), Modificator: 'User200' },
{id: 12347, car: 'Toyota', Model: 'Corolla', RepairDate: new Date('2016-04-09'), Modificator: 'User200' },
{id: 12348, car: 'Toyota', Model: 'Corolla', RepairDate: new Date('2016-04-10'), Modificator: 'User200' },
]
これは、文字列である応答行から解析できるすべてのデータです。
var failedRepairs = [
{ car: 'Toyota', Model: 'Corolla', RepairDate: new Date('2016-04-09'),
{ car: 'Nissan', Model: 'Almera', RepairDate: new Date('2016-04-07')
];
この後、修理に失敗した車を含むサブアレイを作成する必要があります。同じモデルの修理がいくつかあることに注意してください。私が扱わなければならない識別子は車、モデル、日付です。バックエンドは、これを簡単にするだろうと私にIDを提供しません。
var resultsArrayShouldLookLikeThis = [
{id: 12346, car: 'Nissan', Model: 'Almera', RepairDate: new Date('2016-04-07'), Modificator: 'User200' },
{id: 12347, car: 'Toyota', Model: 'Corolla', RepairDate: new Date('2016-04-09'), Modificator: 'User200' }
]
私はこれがそう、ここでちょっとscummyリクエストに見えることをコメントでサポートされて実現したように、私はちょっと予想通りの結果として4つの未定義のオブジェクトを今のようもたらしたものです。ヘルパー関数は、配列内で一致する部分が見つかるとtrueを返し、そうでなければfalseを返します。
var result = sentRepairs.map(function (x) {
if (
helperService.searchArrayByProperty(x.car, failedRepairs, "car") &&
helperService.searchArrayByProperty(x.Model, failedRepairs, "Model")) {
return x;
}
});
ヘルパー関数自体、それは私が書いたと私はそれが実際の日付の間の比較を行いませんが、私はまだであっても、日付の比較なしで4つの未定義のオブジェクトを取得しています知っていない:
var searchArrayByProperty = function(value, array, property) {
var item = {};
var found = false;
for (var i = 0; i < array.length; i++) {
if (typeof array[i][property] === "string") {
if (array[i][property].toString() === value) {
item = array[i];
found = true;
}
}
else if (typeof array[i][property] === "number") {
if (array[i][property] === value) {
item = array[i];
found = true;
}
}
else if (typeof array[i][property] === "boolean") {
if (array[i][property] === value) {
item = array[i];
found = true;
}
}
else if (typeof array[i][property] === "undefined") {
return false;
}
}
if (found) {
return true;
} else {
return false;
}
}
あなたがこれまでにしようとしているどのようなコード投稿することができますか? – JordanHendrix
私たちはコード作成サービスではありません。私たちは、あなたがすでに試したコードが正しく動作していない理由を理解するのに役立つリソースです。それが機能するには、あなたが試したことを私たちに示す必要があります。 – jfriend00
お待ちください、私はそれを知っています。私は数分で更新します。 – poptard