Javascript iterate Json Array to get values

前端 未结 4 1942
广开言路
广开言路 2021-01-16 05:55

I have a below JavaScript

var arr = [];
arr.push({0:\'Zero\'});
arr.push({1:\'One\'});
console.log(Object.keys(arr));
console.log(Object.values(arr)); //Not          


        
4条回答
  •  独厮守ぢ
    2021-01-16 06:24

    You can use .flatMap to get the keys/values from your objects (in the form of an array) and then flatten the array into your result:

    const arr = [];
    arr.push({0: 'Zero'})
    arr.push({1: 'One'})
    
    console.log(arr.flatMap(Object.keys));
    console.log(arr.flatMap(Object.values));

    However, please note, .flatMap is has limited browser support and so it may not work in all browsers. Instead, if you cannot use .flatMap and want a more stable solution you can use .reduce:

    const arr = [];
    arr.push({0: 'Zero'});
    arr.push({1: 'One'});
    
    console.log(arr.reduce((acc, obj) => [...acc, Object.keys(obj).shift()], []));
    console.log(arr.reduce((acc, obj) => [...acc, Object.values(obj).shift()], []));

提交回复
热议问题