尝试使用Javascript返回.map遇到的值时遇到问题。我的代码是:
function LineaDeSuccion() {
const carga = vm.cargaTotal / vm.numeroEvaporadores;
vm.succion.map(i => {
if (i.temperatura == vm.tempSel) {
const cargas = Object.keys(i).map(function(key) {
return i[key];
});
// I need to return this value in my function
return getKeyByValue(i, closest(cargas, carga));
}
// Obviously I can't do it because the value it's encapsulated into the map callback.
// How can I solve it?
return value;
});
}
答案 0 :(得分:1)
一种方法是使用Array.prototype.find
在数组中查找所需的值,然后在获得所需的转换后执行转换。
function LineaDeSuccion() {
const carga = vm.cargaTotal / vm.numeroEvaporadores;
const i = vm.succion.find(i => i.temperatura == vm.tempSel);
if (i === undefined) {
throw Error("can't find what I want in the array");
}
const cargas = Object.keys(i).map(function (key) {
return i[key];
});
return getKeyByValue(i, closest(cargas, carga));
}
请注意,此方法不会遍历整个数组,但会在找到匹配项后立即跳出find
循环。如果数组中有多个元素i
满足条件i.temperatura == vm.tempSel
,则返回第一个匹配,而不是最后一个。
答案 1 :(得分:0)
如果您想要返回map
之外的值,则必须设置一个位于map
之外的变量,然后在{{1}内设置该值}}:
map