如何解决如何在数组中使用过滤器方法并仅打印对象的特定值
const arr = [
{ value: "Value one",label: "Value at one"
},{
value: "Value 2",label: "Value at 2"
},{
value: "",label: "Value at 3"
}
]
这是我的数组,作为道具在不同组件中传递。但是我也想添加过滤器,如果数组中的值为空,则不要在子组件中显示其标签
{arr.filter(val => !val.value).map((data)=>
<ChildComponent data ={data}/>
)}
- 我的疑问是如何使用 .filter 隐藏空值。我已经写了逻辑,但是即使数组中有值,它也不起作用。
- 当我正在执行console.logs以获取数组的值时:
console.logs(this.arr),输出如下:
1: Object { value: "Value one",label: "Value at one" }
2: Object { value: "Value 2",label: "Value at 2" }
3: Object { value: "",label: "Value at 3" }
我只想获取对象1的值,不确定如何获取它。 console.log("sampleData",arr.map(data=>data.label))
的输出为:[ "Value at one","Value at 2","Value at 3" ]
。虽然我只希望将输出作为 [“一次取值”] 。
谁能帮我过滤现有的值,并从数组中单独打印第一个值/第二个值/第三个值。
解决方法
您的代码是正确的,您唯一需要对其进行更改的arr.filter(val => !val.value)
应该是arr.filter(val => val.value != '')
或arr.filter(val => val.value)
,如果要验证空白,则必须执行arr.filter( val => val.value.trim()!='');同时console.log()会向您显示第一个数组,因此,如果要获取新值,则必须创建一个分配该值的新变量,例如let newarray = arr.filter(val => val.value)
,如果console.log(newarray),它将显示正确的值。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。