2017-07-17 17 views
-3

既存のオブジェクトを配列内の新しいオブジェクトに置き換えようとしていますが、2つの配列allDaysstoredDayを持っています。両方ともサイズが異なります。allDaysは10オブジェクト、storedDaysは4オブジェクト両方が同じ値に私が保存された値の誤差を取得しています上記を実行する上day配列内の2つの値を一致させる

mode(){ 
     this.nativeStorage.getItem("modifiedData").then((data)=>{ 
      console.log(data) 
      var allDay = this.dailyDays; 
      for (var i = 0; i < allDay.length; i++) { 
       var element = allDay[i]; 
       var storedDay = data[i]; 
       console.log("all Day",element.day); 
       console.log("stored Day",storedDay.day); 
      if (element.day === storedDay.day) { 
        console.log("we have same day", i) 
        data=({ 
         day: data.day, 
         month: data.month, 
         year: data.year, 
         quantity: data.selectedQuantity, 
         brand: data.selectedBrand, 
         price: data.price, 
        }) 
        // below line will replace the whole object 
        this.dailyDays[i] = data; 
       } 

      } 
      console.log(data.day) 
     }) 
    } 

を持つことになり、誰かが2つの配列を確認し、storedDay持つ配列を更新する方法の例を与えることができます。

このイメージの最初の行は、4つのオブジェクトを持つstoredDay配列です。あなたは同じ日の値を格納するための新しい変数を定義する必要があります10個のオブジェクト enter image description here

+0

何価値の種類は保管されていますか?オブジェクトの場合は、 '=== 'と比較することはできません – Danmoreng

+1

エラー –

+0

は、同じ長さのこれらの配列ですか? –

答えて

3

を持つことになります そして終日配列は:

mode(){ 
    this.nativeStorage.getItem("modifiedData").then((data)=>{ 
     console.log(data); 
     var sameDay = null; // =======> define this variable 
     var allDay = this.dailyDays; 
     for (var i = 0; i < allDay.length; i++) { 
      var element = allDay[i]; 
      var storedDay = data[i]; 
      console.log("all Day",element.day); 
      console.log("stored Day",storedDay.day); 
     if (element.day === storedDay.day) { 
       console.log("we have same day", i) 
       sameDay=({ // ==========> change this 
        day: data.day, 
        month: data.month, 
        year: data.year, 
        quantity: data.selectedQuantity, 
        brand: data.selectedBrand, 
        price: data.price, 
       }) 
       // below line will replace the whole object 
       this.dailyDays[i] = sameDay; // ======> change this 
      } 

     } 
     if(sameDay) 
      console.log(sameDay.day) // =======> and change this 
    }) 
} 
0

私は私の要求にこれが設定されます解決策を見つけるために管理

mode(){ 
     this.nativeStorage.getItem("modifiedData").then((data)=>{ 
      console.log(data) 
      var sameDay; 
      var allDay = this.dailyDays; 
      for (var i = 0; i < allDay.length; i++) { 
       var allDayelement = allDay[i]; 

       console.log("all Day",allDayelement.day); 

       data.forEach(forEachElement => { 
        console.log("forEachElement",forEachElement.day); 
        if (allDayelement.day === forEachElement.day) { 
        console.log("we have same day", i) 
        sameDay=({ 
         day: forEachElement.day, 
         month: forEachElement.month, 
         year: forEachElement.year, 
         quantity: forEachElement.selectedQuantity, 
         brand: forEachElement.selectedBrand, 
         price: forEachElement.price, 
        }) 
        // below line will replace the whole object 
        this.dailyDays[i] = sameDay; 
      } 
       }); 

      } 
     // console.log(data.day) 
     }) 
    } 
関連する問題