核心问题: 有一个给定的对象,有一个给定的对象元素。我想检查对象中是否有任何其他元素期望这个给定的元素。例如,有一个对象:
object = {
example1: "text1",
example2: "text2"
}
如何检查是否还有其他元素example1
?
我的解决方案: 我有一个函数,它将对象作为参数。对象是常量。
function checkObjectOfElements(object, element)
{
var filters = object;
delete filters[element];
if (filters["test1"] != undefined ||
filters["test2"] != undefined ||
filters["test3"] != undefined ||
filters["test4"] != undefined) {
return true;
} else {
return false;
}
}
第一个参数对象是第二个elemet我要删除的内容。
问题: 基本上我不想删除这个元素,只是检查是否有任何其他元素期望这些在对象中,但如果我调用元素的删除它不仅删除函数内部,而是全局删除。我认为它是作为指针,但我没有找到任何其他解决方案来获取参数不作为指针。
答案 0 :(得分:0)
您可以像这样检查对象的大小:
ng-controller="RuleController"
你可以写一个条件:
Object.keys(object).length
使用此信息,您可以决定您的对象是否仅包含此指定元素。
答案 1 :(得分:0)
我是否理解正确 - 你只需要知道你的对象中只有具体的单一属性?
这有帮助吗?
function checkPropSingle(obj, prop) {
for(var key in obj) {
if(key !== prop) {
return false;
}
}
return true;
}
var obj1 = {a:1, b:2, c:3},
obj2 = {a:1, b:2},
obj3 = {a:1};
console.log(checkPropSingle(obj1, 'a'));
console.log(checkPropSingle(obj2, 'a'));
console.log(checkPropSingle(obj3, 'a'));
答案 2 :(得分:0)
非常简单。检查是否存在某个名称不是element
function checkObjectOfElements(obj, element) {
return Object.keys(obj).some(name => name !== element)
}