【问题标题】:if a value is equal to an object's key in an array of objects, return that object's value javasciprt [duplicate]如果值等于对象数组中对象的键,则返回该对象的值 javasciprt [重复]
【发布时间】:2020-12-08 07:03:36
【问题描述】:

我有这个对象数组:

myArray=[
{name: 'joe', value: 'joe rogan'},
{name: 'sarah', value: 'sarah rogan'},
{name: 'jack', value: 'jack rogan'},
{name: 'steph', value: 'steph rogan'}
]

我想看看myArray 的名字是否包含'sarah',然后返回它的值'sarah rogan'。 我试过了:

const myName = myArray.map(o => o.name === 'sarah' ? o.value : "")

但它返回一个包含两个值的数组。我怎样才能将'sarah' 的值'sarah rogan' 作为字符串?

【问题讨论】:

    标签: javascript arrays dictionary object key


    【解决方案1】:

    您也可以使用filter。这会将所有匹配项作为Array 返回,而find 则返回第一个匹配项。

    myArray=[
    {name: 'joe', value: 'joe rogan'},
    {name: 'sarah', value: 'sarah rogan'},
    {name: 'jack', value: 'jack rogan'},
    {name: 'steph', value: 'steph rogan'}
    ]
    
    // filter the array and get the first item
    const myName = myArray.filter(o => o.name === 'sarah')[0]
    
    console.log(myName.value)

    【讨论】:

      【解决方案2】:

      使用 for 循环:

      myArray=[
      {name: 'joe', value: 'joe rogan'},
      {name: 'sarah', value: 'sarah rogan'},
      {name: 'jack', value: 'jack rogan'},
      {name: 'steph', value: 'steph rogan'}
      ]

      for(let i = 0; i < myArray.length; i++){
          if(myArray[i].name === 'sarah'){
              console.log(myArray[i]);
          }
      }

      【讨论】:

        【解决方案3】:
        const myName = myArray.find(x => x.name === 'sarah').value
        

        【讨论】:

          【解决方案4】:

          您可以使用Array#find

          const myArray=[
            {name: 'joe', value: 'joe rogan'},
            {name: 'sarah', value: 'sarah rogan'},
            {name: 'jack', value: 'jack rogan'},
            {name: 'steph', value: 'steph rogan'}
          ];
          let obj = myArray.find(({name})=>name==='sarah');
          if(obj) console.log(obj.value);

          【讨论】:

          • 现在你有了一个金徽章,你应该用它来锤击这些复制品...
          • 重复是什么意思?这是一个重复的问题吗?
          猜你喜欢
          • 2020-07-19
          • 2017-07-15
          • 1970-01-01
          • 2020-11-13
          • 2017-11-16
          • 1970-01-01
          • 2023-02-10
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多