2014-10-17 171 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]; 
           } 
          } 
         } 
相关问题