我有一个包含我正在寻找的东西的对象:
1:对象[ID:“38433”,位置:“中央”] 2:对象[ID:“43434”,位置:“西”]
我有一个名为学校的对象,其中包含所有内容:
我正在使用Object.keys()
方法遍历对象,但我需要传入要搜索的位置来搜索中心或西方等。如果我尝试做类似(Schools.District.location)的事情,我会收到错误。如何将正确的参数传递给我的object.keys
函数?
第2部分:从该数组中删除元素的正确方法是什么。所以我需要删除位置[15],如果说ID匹配。
代码:
$.each(Exclusions , function (index, value) {
var location = value.Location; //gives me Central, West, East
var ID = value.ID;
Object.keys(Schools.District.{{pass in location}}).forEach(function (key) {
//each location is an array of schools so i need to scan each for the matching ID
for (var i=0; i < {{get length of location array}}.length; i++) {
if(location[i][ID] == ID)
{
location.slice(); //not sure about this
}
}
});
答案 0 :(得分:1)
你想肯定使用objects.key
吗?为什么不使用for in
?
var result = [];
for (i in YOUR_OBJECT)
{
if(YOUR_OBJECT[i].location == "what you want") result.push(YOUR_OBJECT[i]);
}
我猜您无法移除您想要的属性,但您可以将其设置为null
,最后,获取不属于null
的属性
编辑: 删除YOUR_OBJECT上的属性:(我是关键迭代器)
delete YOUR_OBJECT[i]
答案 1 :(得分:1)
您应该使用@ am1r_5h上面的答案。对于每次迭代,i
(我更喜欢使用key
)是一个正确的密钥。 (对于数组,整数索引。)收集以后使用的密钥不是惯用的JavaScript。
使用splice
方法从阵列中删除。它完全删除元素并将其替换为空,以便数组的新长度为original_length - 1
。使用delete
并传递元素索引将使用undefined
替换元素,而数组的长度保持不变。以下是Array.prototype.slice
:https://developer.mozilla.org/enUS/docs/Web/JavaScript/Reference/Global_Objects/Array/splice