仅在函数内删除对象元素

时间:2016-11-21 11:46:21

标签: javascript json object

核心问题: 有一个给定的对象,有一个给定的对象元素。我想检查对象中是否有任何其他元素期望这个给定的元素。例如,有一个对象:

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我要删除的内容。

问题: 基本上我不想删除这个元素,只是检查是否有任何其他元素期望这些在对象中,但如果我调用元素的删除它不仅删除函数内部,而是全局删除。我认为它是作为指针,但我没有找到任何其他解决方案来获取参数不作为指针。

3 个答案:

答案 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)
}