有没有一种JavaScript方法/函数可以通过键值循环对象并转换为数组?

4

嗨,这是我的API

 // --- API
        // Replace ./data.json with your JSON feed
        fetch('http://127.0.0.1:8000/cars/')
            .then(response => {
                return response.json()
            })
            .then(data => {
                // Work with JSON data here
                //-- go to array named "results"
                obj1 = data.results 
                console.dir(obj1) 

<...>

这是我的API输出。一些包含对象和随机数据的数组。

[{"id":3,"name":"奥迪","price":11},{"id":2,"name":"梅赛德斯-奔驰","price":22},{"id":1,"name":"宝马","price":99},{"id":4,"name":"特拉贝特","price":113}]

我想通过JavaScript中的键循环遍历对象并将其放入不同的数组中,以便Chart.js可以将其处理为标签,例如。

示例

["奥迪", "梅赛德斯-奔驰", "宝马", "特拉贝特"]

所以我尝试了三种不同的方法来完成这个任务。

Object.keys
Object.values
Object.entries

我也尝试了一个循环

                // --- LOOP
                var arr = obj1
                for (var i = 0; i < arr.length; i++) {
                    console.dir(arr[i]);
                }
                console.dir(arr)

但是我只能通过循环来去掉[ ],最终结果太杂乱了。所以我在想是否有类似的方法。

{% for some_value in Object.name %}
{{ some_value ]}
{% endfor %}

像在Django中一样?通过它们的键对对象进行简单循环?

2个回答

5

尝试使用标准的map箭头函数(我们使用它们来处理IT技术相关内容)。

let d = [{"id":3,"name":"Audi","price":11},{"id":2,"name":"Mercedes","price":22},{"id":1,"name":"BMW","price":99},{"id":4,"name":"Trabant","price":113}];

let r= d.map(x=>x.name);

console.log(r);


3
你可以使用函数map
let result = arr.map(({name}) => name);

数组result将包含品牌名称。

Example

let arr = [{"id":3,"name":"Audi","price":11},{"id":2,"name":"Mercedes","price":22},{"id":1,"name":"BMW","price":99},{"id":4,"name":"Trabant","price":113}];

let result = arr.map(({name}) => name);
console.log(result);
.as-console-wrapper { min-height: 100%; }


1
我之前在你的答案中加了+1 - {name} 的构造很好 - 我不知道它。 - Kamil Kiełczewski
1
@KamilKiełczewski 这被称为解构赋值 - Ele

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接