繁体   English   中英

来自单个数组的目标对象值

[英]Target object value from single array

我有一个包含数字数据的数组,我需要定位数组内部对象的值。

一个清楚的例子,数据如下:

[
{1: 'one'},
{2: 'two'},
{3: 'three}
]

我要减少它以获得我想要的那个,所以我剩下[{3: 'three'}] 现在如何获取“三个”字符串?

非常感谢

使用括号符号

任何不是有效JavaScript标识符的属性名称(例如,具有空格或连字符或以数字开头的属性名称)都只能使用方括号表示法进行访问。 当要动态确定属性名称时(当直到运行时才确定属性名称时),该符号也非常有用。

 var obj = [{ 3: 'three' }]; console.log(obj[0][3]); 

如果密钥为未知:

 var obj = [{ 3: 'three' }]; console.log(obj[0][Object.keys(obj[0])]); 

您可以做到这一点,即使它有点凌乱:

var d = [{3: 'three'}];
d[0][Object.keys(d[0])[0]]

这说明不知道它们的关键是什么,因此任何单个输入对象都可以使用。

您可以使用另一个变量稍微简化一下:

var _d = d[0];
_d[Object.keys(_d)[0]]

尽管理想情况下,您将编写一个函数来封装此函数:

function firstValue(list) {
  return list[0][Object.keys(list[0])[0]];
}

希望对Object.values支持可以Object.values此问题:

var d = [{3: 'three'}];
Object.values(d[0])[0]

如果在过滤之后,仅剩下一项,并且您不知道键,则可以通过以下方式访问值:

var obj = ([{3: 'three'}])[0];
obj[Object.keys(obj)[0]];

希望能帮助到你。

如果您的数组是a = [{3: 'three'}]则使用

a[0][3]

第一个括号用于数组的索引。 第二个括号用于字典{3: 'three'}的键3

如果要让数组中包含的字典中单个元素的值,请使用

a[0][Object.keys(a[0])[0]]

但是我还要对数组的长度和字典的长度进行一些检查。

我猜问题的症结在于您不知道在第二个括号中放什么...

var a = {3: 'three'};
var val;
for (var i in a) val = a[i];  // val is now 'three'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM