如何仅在每个JSON对象中获取第一个值

时间:2018-11-13 02:52:43

标签: javascript arrays json object

x变量具有如下所示的JSON值

let x = [{'a': 7, 'b': 8}, {'a': 1, 'b': 5 }]  

输出应为

y = [7,1];

如何仅获取JSON多个对象的第一个值?谢谢。

4 个答案:

答案 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#mapObject.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);
});