Javascript 如何在数组中使用filter方法并仅打印对象的特定值
这是我的阵列,我在不同组件中作为道具传递。但我还想添加一个过滤器,如果数组中的值为空,则不在子组件中显示其标签Javascript 如何在数组中使用filter方法并仅打印对象的特定值,javascript,arrays,reactjs,typescript,object,Javascript,Arrays,Reactjs,Typescript,Object,这是我的阵列,我在不同组件中作为道具传递。但我还想添加一个过滤器,如果数组中的值为空,则不在子组件中显示其标签 const arr = [ { value: "Value one", label: "Value at one" }, { value: "Value 2", label: "Value at 2" }, { val
const arr = [
{ value: "Value one",
label: "Value at one"
},
{
value: "Value 2",
label: "Value at 2"
},
{
value: "" ,
label: "Value at 3"
}
]
我只想获取对象1的值,不确定如何获取它console.log(“sampleData”,arr.map(data=>data.label))
给出的输出为:[“一处的值”、“二处的值”、“三处的值”]
。尽管我只希望输出为[“一个值”]。
有谁能帮我过滤存在的值,并且只打印数组中的第一个值/第二个值/第三个值。您的代码是正确的,您只需要更改它
arr.filter(val=>!val.value)
t应该是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),它将显示正确的值。您的代码是正确的。问题是您的控制台.log
,它记录原始数组,而不是您过滤值的数组:“
对象”filter
不会更改您调用它的数组,它会创建一个新数组,其中只包含您选择保留的项目。就这样很好,干得好!:-)您的过滤器arr.filter(val=>!val.value)可能是反向的:您必须使用arr.filter(val=>!!val.value),即使在arr.filter(val=>!!val.value)之后,我仍然会得到空值的标签。当我的子对象中的值为null时,我希望隐藏标签component@T.J.Crowder如何获取第1个位置的值请使用演示问题的示例更新您的问题,最好是使用堆栈片段([]
工具栏按钮)运行的问题。堆栈代码段支持React,包括JSX。我不想获取新值,我想获取位置1处的值
{arr.filter(val => !val.value).map((data)=>
<ChildComponent data ={data}/>
)}
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" }