我正在尝试从返回大对象的过滤器中返回单个值。
return data.filter(subject => subject.id === 1)
.map((subject) => {
return subject.total.toString();
});
我已经尝试过toString,JSON.parse和其他一些方法,但是总是将其作为单个数组值获得。
[112]
或数组内的字符串
[“ 112”]
但不是单个返回值
112
映射错误的方法吗?如何返回纯整数或字符串呢?
答案 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+""