2014-10-17 213 views
0

如何比較一個數組與JavaScript中的一對/鍵/值(屬性:值)對象?將數組與數組中的對象屬性進行比較

這是我應該怎樣做,如果他們只是陣列:

     for (var l = 0; l < vm.statesNotAvailable.length; l++) 
         { 
          for (var m = 0 ; m < vm.statesNotAvailable.length; m++) 
          { 
           //Maps the values to their keys inside vm.statesArray 
           if (vm.statesNotAvailable[l] == vm.statesWithCodes[m]) { 

            delete vm.statesWithCodes.m; 

           } 
          } 
         } 

這是我應該怎樣做,如果他們是兩個對象:

  for (var key in object) { 
          if (vm.statesNotAvailable.hasOwnProperty(key)) { 
           //Now, object[key] is the current value 
           if (vm.statesNotAvailable[key] === vm.statesArray[key]) 
            delete object[key]; 
          } 
         } 

然而,無論這些工作爲了我。那麼,儘管索引(位置),我該如何從我的對象中刪除與數組中的值相交的鍵?

+0

就像我說:我試圖在數組來比較元素的值的一個對象中的屬性的值。 – user1789573 2014-10-17 15:15:50

+0

他們不是相同的數據結構,沒有。一個數組不會有屬性,它們只有元素中有「stuff」的索引(可能是值,可能是數組,可能是對象,可能是等等)。而對象將具有鍵/值對的屬性(即vm.statesWithCodes.Alabama是關鍵w /值「AL」 - 我映射狀態作爲屬性瓦特/ 2位數州名稱的值該特定財產)。這有助於澄清數組和對象之間的區別是什麼? – user1789573 2014-10-17 15:21:32

+0

你有一個(鍵,值)來自一個對象。你只是想看看該值是否在數組中的任何地方,如果是這樣,你想從對象中刪除它? – jfriend00 2014-10-17 15:22:54

回答

0

下面是解:

     //Iterates through properties of object 
         for (var property in vm.statesWithCodes) 
         { 
          //Iterates through indices of array 
          for (var m = 0 ; m < vm.statesNotAvailable.length; m++) 
          { 
           //Compares keys of object w/ values of array 
           if (property == vm.statesNotAvailable[m]) 
           { 
            //Deletes the property sequentially 
            delete vm.statesWithCodes[property]; 
           } 
          } 
         } 
相關問題