На мгновение игнорируя тот факт, что element = update_element(element);
ничего не достигает (так как вы просто обновляете локальный element
, а не то, на что он ссылается), ваше состояние может быть уменьшено до простого
if((wf && wf[0] == toCompare) || (req && toCompare == req[0]))
, так какосновная проверка состоит в том, равняется ли toCompare
или wf[0]
или req[0]
, и вы в основном добавляете проверку, чтобы увидеть, существуют ли wf
и req
.
На данный момент вы можете использовать map
вместо forEach
чтобы получить желаемый результат.Обратите внимание, что вы должны return
отобразить карту, а при вызове любой функции advance_bthreads
необходимо переназначить результат (т. Е. arr = advance_bthreads(toCompare, arr);
)
function advance_bthrads(toCompare, arr) {
return arr.map(function(element) { // NOTICE you have to return the result
if (element.value) {
let wf = element.value['wait_for'];
let req = element.value['request'];
if((wf && wf[0] == toCompare) || (req && toCompare == req[0]))
element = update_element(element);
}
return element;
}
}
.