【问题标题】:Get array data via position in Typescript [duplicate]通过打字稿中的位置获取数组数据[重复]
【发布时间】:2019-10-18 00:00:29
【问题描述】:

以下是我的JSON格式,

{
"records": [
{
"ID": "4",
"TYPE": "landscape",
"FIMAGE": "viewveni.jpg",
"COUNT": "4444"
}
],
"pagination": {
"count": 1,
"page": 1,
"limit": 10,
"totalpages": 1
}
}

我正在努力获取First elementSecond element,即records.TYPE,但我无法使用索引名称TYPE

我知道records[0][1] 行不通,我现在真的没有选择了。

编辑:

我知道我可以将数据作为 records[0].TYPE 获取,但我不能将 TYPE 用作纯文本,但是如果它是一个变量,那就没关系,即。类似records[0].cat 的地方cat = 'TYPE'

【问题讨论】:

  • 您可以尝试let [key, val] = Object.entries(records[0])[1],但结果可能不一致(请参阅下面 Nikhil 的回答)
  • 是否可以内联获取值?我知道有数百种方法可以做到这一点,但我想要简短的内联解决方案,请检查更新的问题。

标签: javascript arrays typescript


【解决方案1】:

使用records[0].TYPErecords[0]["TYPE"]

更多信息请参考MDN documentation on Property Accessors

我正在努力获取第一个元素的第二个元素

TYPE 不是记录数组元素的第二个元素。对象属性没有排序。

var data = { "records": [{ "ID": "4", "TYPE": "landscape", "FIMAGE": "viewveni.jpg", "COUNT": "4444" }], "pagination": { "count": 1, "page": 1, "limit": 10, "totalpages": 1 } };

var result = data.records[0].TYPE;

console.log(result);

Object.values(data.records[0])[1] 将给出不一致的结果,因为对象属性没有排序。

var data = { "records": [{ "ID": "4", "TYPE": "landscape", "FIMAGE": "viewveni.jpg", "COUNT": "4444" }], "pagination": { "count": 1, "page": 1, "limit": 10, "totalpages": 1 } };

console.log(Object.values(data.records[0])[1]); 

如果TYPE 值将存储在变量中,那么您可以使用括号表示法来访问该值。

var data = { "records": [{ "ID": "4", "TYPE": "landscape", "FIMAGE": "viewveni.jpg", "COUNT": "4444" }], "pagination": { "count": 1, "page": 1, "limit": 10, "totalpages": 1 } };

let prop = "TYPE";

console.log(data.records[0][prop]);

【讨论】:

  • `我不能使用索引名称TYPE`,对不起!
  • TYPE 不是索引,它是对象的属性。对象中没有第二个元素,因为对象属性没有排序。你可以使用Object.values(data.records[0])[1],但每次都会得到不同的输出,所以不应该使用它。
  • JavaScript 变量索引是否区分大小写?
  • @Mercurial - 是的,它们区分大小写。
猜你喜欢
  • 2019-05-04
  • 1970-01-01
  • 2019-06-02
  • 1970-01-01
  • 2014-06-23
  • 1970-01-01
  • 1970-01-01
  • 2018-07-03
  • 2021-08-09
相关资源
最近更新 更多