将数组与Javascript中的对象属性进行比较

将数组与Javascript中的对象属性进行比较,javascript,arrays,object,properties,Javascript,Arrays,Object,Properties,如何将数组与包含键/值属性对的对象进行比较:Javascript中的值 如果它们只是数组,我会这样做: for (var l = 0; l < vm.statesNotAvailable.length; l++) { for (var m = 0 ; m < vm.statesNotAvailable.length; m++)

如何将数组与包含键/值属性对的对象进行比较: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;

                                }
                            }
                        }
然而,这两种方法对我都不管用。那么,如何从对象中删除与数组中的值相交的键,而不考虑索引位置?

以下是解决方案:

                        //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];
                                }
                            }
                        }

就像我说的:我试图将数组中元素的值与对象中属性的值进行比较。它们不是相同的数据结构,不。数组没有属性,它们只有索引,元素中的内容可以是值,可以是数组,可以是对象,可以是等等。。然而,对象将具有键/值对的属性,即vm.statesWithCodes.Alabama是键w/值AL-我将状态映射为属性w/将2位状态名称映射为该特定属性的值。这有助于澄清数组和对象之间的区别吗?你有一个键,一个对象的值。您只是想看看该值是否在数组中的任何位置,如果是的话,您想将其从对象中删除吗?发布一个您试图比较的两个数据结构的示例也会很有帮助。vm.statesNotAvailable 2014-10-17 10:31:19.855[array[1]0:Alabamalength:1_uproto_uu:array[0],array[1]0:Alaskalength:1_uuuproto_uuuuu:…vm.statesWithCodes 2014-10-17 10:31:23.635对象{阿拉巴马州:阿拉斯加州:AK,亚利桑那州:亚利桑那州,阿肯色州:AR,加利福尼亚州:CA.}
                        //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];
                                }
                            }
                        }