x变量具有如下所示的JSON值
let x = [{'a': 7, 'b': 8}, {'a': 1, 'b': 5 }]
输出应为
y = [7,1];
如何仅获取JSON多个对象的第一个值?谢谢。
答案 0 :(得分:3)
对象属性仅在半现代浏览器中可靠地排序-所需的输出可能无法从运行较旧的浏览器上的代码可靠地确定(除非您在数组中具有属性名称的设置顺序,或者除非属性是数字的, 或类似的东西)。但是,在较新的浏览器上,您可以.map
输入数组并从要迭代的对象中提取Object.values
找到的第一个值:
const x = [{'a': 7, 'b': 8}, {'a': 1, 'b': 5 }];
const result = x.map((obj) => Object.values(obj)[0]);
console.log(result);
还请注意,there's no such thing as a "JSON Object"与往常一样。如果您有一个对象或数组,那么您有一个对象或数组,句号。 JSON格式是一种用字符串表示对象的方法 ,例如const myJSON = '{"foo":"bar"}'
。如果不涉及任何字符串,序列化或反序列化,那么JSON也将不涉及。
答案 1 :(得分:1)
如果您确定要访问的密钥,则只需从x进行迭代,然后将结果压入y。
let x = [{'a': 7, 'b': 8}, {'a': 1, 'b': 5 }];
let y = [];
for(let i in x) {
y.push(x[i].a);
}
console.log(y);
答案 2 :(得分:0)
您可以将Array#map
与Object.values()
结合使用以实现此目的;映射会将输入数组x
的每个项目转换为结果数组y
。对于结果数组y
中的每个项目,您将从x
中选择相应项目的第一个值。
要选择x
中某个项目的第一个值,该项目将传递到Object.values()
。 Object.values()
的结果是该项目的值的数组,通过它您可以访问并“映射” y
中每个项目的第一个值:
let x = [{'a': 7, 'b': 8}, {'a': 1, 'b': 5 }]
let y = x.map(item => Object.values(item)[0]);
console.log(y)
答案 3 :(得分:0)
var data = [];
x.forEach((elem) => {
data.push(elem.a);
});