【问题标题】:Javascript get all values of objectJavascript获取对象的所有值
【发布时间】:2019-03-07 12:23:21
【问题描述】:

我想从数据数组中获取所有名称。不使用迭代器有什么办法吗?

const data = [
    {name: 'Rushabh', age: 22},
    {name: 'Bonny', age: 24}
]

console.log(Object.values(data));

【问题讨论】:

  • 你总是可以做data.map(obj => obj.name) 不确定这是否算作“使用迭代器”。 (任何数组在技术上都是一个迭代器。)
  • 我知道,但是有没有默认的方法来做这件事?
  • 请添加想要的结果。
  • 不要挑剔,但问题是否有意义,是使用迭代器。 为什么?此时并不重要。好吧,如果没有迭代,您需要事先知道数组中有多少项,因为您再次没有迭代。因此,data[0].namedata[1].name 是您在这里的两个选择。已经提出了一些解决方案,但它们使用迭代。是的,map 是一个迭代

标签: javascript


【解决方案1】:

试试这个:

const data = [
    {name: 'Rushabh', age: 22},
    {name: 'Bonny', age: 24}
]
const names = data.map(({name}) => name)
console.log(names);

names 将包含名称列表。

【讨论】:

    【解决方案2】:

    如果只获取单个属性,则需要直接映射该属性。

    const
        data = [{ name: 'Rushabh', age: 22 }, { name: 'Bonny', age: 24 }],
        result = data.map(({ name }) => name); // get only name
    
    console.log(result);

    【讨论】:

      【解决方案3】:

      如果没有某种迭代器,您将无法做到这一点。您可以将map() 与简写属性一起使用。

      const data = [
          {name: 'Rushabh', age: 22},
          {name: 'Bonny', age: 24}
      ]
      const name = data.map(({name}) => name);
      console.log(name);

      【讨论】:

        【解决方案4】:

        使用Array.map() 并提取name 属性:

        const data = [
            {name: 'Rushabh', age: 22},
            {name: 'Bonny', age: 24}
        ]
        
        console.log(data.map(x => x.name));

        【讨论】:

          【解决方案5】:

          如果您使用的是 JQuery,请执行以下操作:

          const data = [
              {name: 'Rushabh', age: 22},
              {name: 'Bonny', age: 24}
          ] 
          var names = $.map( data, function(item, key) { return item.name; } );
          // names : ['Rushabh', 'Bonny']
          

          【讨论】:

            猜你喜欢
            • 2014-12-24
            • 2011-05-22
            • 2011-06-18
            • 2016-08-21
            • 1970-01-01
            • 2017-07-18
            • 2017-06-07
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多