【问题标题】:How to get the first value of the first object in the first array [duplicate]如何获取第一个数组中第一个对象的第一个值[重复]
【发布时间】:2019-11-26 13:51:49
【问题描述】:

我需要了解当我从第一个数组中的第一个对象中获得第一个元素时。 结构是这样的:
let arr = [[{"a": 1, "b": 2}], [{"c": 3, "d": 4}]]

我已经这样做了(见下文),但也许有更短的解决方案

let arr = [[{"a": 1, "b": 2}], [{"c": 3, "d": 4}]]

let newArr = [];
//arr[0] - the first array
arr[0].map((item, index) => {
  //pushing items into empty arr to get the first value
  for (let key in item) {
    newArr.push(item[key]);
  }
  console.log(newArr[0]);
});

我需要这样的输出: - 第一个数组的第一个对象的第一个值。 - 然后是其他值。

【问题讨论】:

  • arr[0][0].a ?
  • 数组中的第一项:arr[0]。数组中的第一项,该数组中的第一项:arr[0][0]。它的a 属性:arr[0][0].a。这就是你所追求的吗?老实说,我有点困惑。
  • @CalvinNunes 我认为关键是她不知道第一个属性名称,它可能会有所不同。
  • @GrafiCode 一个是数组,一个是对象……不过,我同意这种情况下的数组并没有太多用途。
  • @TylerRoper 但当订单很重要时,对象不是合适的数据结构,选项应该是MapArray 或任何持有订单的东西

标签: javascript arrays object


【解决方案1】:

如果不知道名字,可以使用Object.values()

let arr = [[{"a": 1, "b": 2}], [{"c": 3, "d": 4}]];
let result = Object.values(arr[0][0])[0];

console.log(result);

但是,对象属性顺序并不总是与其创建顺序相同。请注意,如果您的对象具有正整数键,您无法检索其创建顺序

let arr = [[{"a": 1, "b": 2, 1: "I'm a positive integer key!"}], [{"c": 3, "d": 4}]];
let result = Object.values(arr[0][0])[0];

console.log(result);

【讨论】:

    【解决方案2】:

    您可以使用flat(),然后使用Object.values(),如下所示:

    const arr = [[{"a": 1, "b": 2}], [{"c": 3, "d": 4}]]
    
    console.log(Object.values((arr.flat()[0]))[0])

    【讨论】:

    • Object.entries(arr.flat()[0]).flat()[1] 是另一种方式
    【解决方案3】:

    您可以使用Object.keys() 来获取对象的键,然后获取此对象的第一个元素。然后您可以使用它来访问该属性。

    let arr = [[{"a": 1, "b": 2}], [{"c": 3, "d": 4}]]
    
    let newArr = [];
    let firstKey = Object.keys(arr[0][0])[0];
    console.log(arr[0][0][firstKey]);

    【讨论】:

    • 没有“第一个元素”这样的东西
    • Object.keys() 返回一个数组,一个数组有第一个元素。
    • 当然,但这不一定是“对象的第一个值”,因为没有“对象的第一个值”之类的东西。
    • 从 ES6 开始就有了。 stackoverflow.com/questions/5525795/…
    • 我知道。但是,告诉 OP 不要依赖它仍然是一个很好的建议。这就是你的答案所暗示的,因此我认为这是一个不好的答案
    猜你喜欢
    • 2017-03-04
    • 2023-03-20
    • 2022-01-19
    • 2021-03-23
    • 1970-01-01
    • 2016-07-27
    • 1970-01-01
    • 1970-01-01
    • 2020-02-07
    相关资源
    最近更新 更多