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