[英]How to create single object from array of object without overriding the value?
[英]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.