从过滤器返回单个值

时间:2018-08-08 13:04:26

标签: javascript arrays filter

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

return data.filter(subject => subject.id === 1)
   .map((subject) => {
   return subject.total.toString();
    });

我已经尝试过toString,JSON.parse和其他一些方法,但是总是将其作为单个数组值获得。

[112]

或数组内的字符串

[“ 112”]

但不是单个返回值

112

映射错误的方法吗?如何返回纯整数或字符串呢?

4 个答案:

答案 0 :(得分:2)

使用filter代替find返回带有过滤值的数组:

const subject = data.find(subject => subject.id === 1);
return subject.total.toString();

或更短:

return data.find(subject => subject.id === 1).total.toString();

答案 1 :(得分:1)

services

return data .filter(subject => subject.id === 1) .map(subject => subject.total.toString())[0] // Take the first element of the array :) 返回一个数组。如果初始数组包含一个元素,则输出数组也将包含一个元素。只需使用Array.map提取它即可。

或者。 [0]返回一个对象:

find()

答案 2 :(得分:0)

过滤器将始终返回一个数组,以使用pop

来获取第一个元素
return data.filter(subject => subject.id === 1)
   .map((subject) => {
   return subject.total;
    }).pop();

答案 3 :(得分:0)

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

return data.filter(subject => subject.id === 1)[0].total+""
相关问题