Мне нужна функция, чтобы проверить, существует ли объект в дереве.Если дерево содержит объект
Я рекурсивно запустить через дерево и использовать lodash для проверки равенства объектов:
var objectInResultList = function (obj, list) {
list.forEach(function (item) {
if (_.isEqual(item, obj) === true) {
return true
}
else if (item.children.length > 0) {
return objectInResultList(obj, item.children);
}
});
return false;
};
var item = {"name":"Enterprise1.1","description": "testTest","children":[]};
var resultList = [{"name":"Enterprise1.1","description": "testTest","children":[{"name":"Enterprise1.1","description": "testTest","children":[]}]}];
var ret = objectInResultList(item, resultList);
alert(ret);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/1.2.1/lodash.min.js"></script>
Функция должна возвращать true
, если элемент в списке и в противном случае вернуть false
, но в настоящее время он всегда возвращает false
.
Может ли кто-нибудь найти мою проблему?
В чем проблема с этим кодом? Какой результат вы получите вместо ожидаемого? – Teemu
моя функция должна возвращать true, если элемент находится в результирующем списке ... и возвращает false, если нет в списке результатов –
И что вы получаете с вашим текущим кодом? – Teemu