2016-11-21 4 views
0

Основная проблема: Существует заданный объект, есть определенный элемент объекта. Я хочу проверить, есть ли какой-либо другой элемент в объекте, который ожидает этот данный элемент. Например, есть объект:Удалить элемент объекта только внутри функции

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; 
    } 
} 

Первый параметр объекта второй элемент, который я хочу удалить.

Проблема: В принципе я не хочу, чтобы удалить этот элемент, просто проверить, есть ли другой элемент ожидать их в объект, но если я называю удалить для элемента его не только удалить внутри функции , но удалить глобально. Я думаю, что это становится указателем, но я не нашел другого решения для получения параметра не как указателя.

+0

Сделайте копию/клон объекта, манипулировать им .. – Rayon

ответ

0

Довольно просто. Проверьте, существует какой-то ключ, имя которого не element

function checkObjectOfElements(obj, element) { 
    return Object.keys(obj).some(name => name !== element) 
} 
0

Вы можете проверить размер объекта, как это:

Object.keys(object).length 

И вы можете написать условие:

element in object 

С этой Infos, вы можете решить, погода ваш объект содержит только это указано элемент или нет.

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'));

Смежные вопросы