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" }