从过滤器返回单个值

leb*_*eau 3 javascript arrays filter

我试图从返回大对象的过滤器中返回单个值。

return data.filter(subject => subject.id === 1)
   .map((subject) => {
   return subject.total.toString();
    });
Run Code Online (Sandbox Code Playgroud)

我已经尝试过,toString、JSON.parse 等等,但总是将其作为单个数组值获取。

[112]

或数组内的字符串

[“112”]

但不是单个返回值

112

地图是错误的方法吗?我如何返回一个纯整数或字符串呢?

hsz*_*hsz 17

而不是filter返回带有过滤值的数组,请使用find

const subject = data.find(subject => subject.id === 1);
return subject.total.toString();
Run Code Online (Sandbox Code Playgroud)

或更短:

return data.find(subject => subject.id === 1).total.toString();
Run Code Online (Sandbox Code Playgroud)


voi*_*oid 3

您只需要选择第一个元素。这应该够了..

return data.filter(subject => subject.id === 1)[0].total+""
Run Code Online (Sandbox Code Playgroud)

  • `find` 的性能也更高,因为它一旦找到匹配项就会停止。过滤器将继续并处理整个数组。 (7认同)