将数组与数组中的对象属性进行比较
问题描述:
如何比较一个数组与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];
}
}
然而,无论这些工作为了我。那么,尽管索引(位置),我该如何从我的对象中删除与数组中的值相交的键?
答
下面是解:
//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];
}
}
}
就像我说:我试图在数组来比较元素的值的一个对象中的属性的值。 – user1789573 2014-10-17 15:15:50
他们不是相同的数据结构,没有。一个数组不会有属性,它们只有元素中有“stuff”的索引(可能是值,可能是数组,可能是对象,可能是等等)。而对象将具有键/值对的属性(即vm.statesWithCodes.Alabama是关键w /值“AL” - 我映射状态作为属性瓦特/ 2位数州名称的值该特定财产)。这有助于澄清数组和对象之间的区别是什么? – user1789573 2014-10-17 15:21:32
你有一个(键,值)来自一个对象。你只是想看看该值是否在数组中的任何地方,如果是这样,你想从对象中删除它? – jfriend00 2014-10-17 15:22:54