Я просмотрел несколько сообщений SO и запутался в функции _.findKey
loDa sh.
У меня есть рабочий код, который возвращает правильное значение, но имеет нежелательный побочный эффект, от которого мне нужно избавиться.
Пример данных;
responderRooms = {
MasterVal: {
status: Value1,
time: Value2,
msg: Value3,
responders: {
4471230123456: {}
}
}
}
Я знаю, что такое значение 4471230123456
, и пытаюсь узнать ключ MasterVal
.
Обычно `_.findKey 'позволяет мне указать массив, путь и значение для поиска. Например,
console.log( _.findKey(responderRooms, 'time', 'Value2') // Returns MasterVal
Однако, когда сопоставляемое значение является частью вложенного массива, я пытаюсь:
var responderIndex = _.findKey(responderRooms, function(o) {
return o.responders.tel = 4471230123456;
});
, который возвращает правильный ключ, но добавляет еще 'tel = NewSentTo' в массиве ResponderVal. В результате:
responderRooms = {
MasterVal: {
status: Value1,
time: Value2,
msg: Value3,
responders: {
4471230123456: {},
tel: 4471230123456 // << This shouldn't be here!
}
}
}
Как найти значение Masterkey, используя ключ вложенного объекта в качестве критерия, без добавления дополнительного свойства?
responders
создается с помощью:
objPath = MasterVal + '.responders.' + data.tel
_.set(responderRooms, objPath, {
name: data.name,
type: data.type,
msgStatus: data.msgStatus,
location: data.location,
jobStatus: data.jobStatus
});
Спасибо, Ник