繁体   English   中英

如何遍历此 object 的“关键字”数组以返回仅包含关键字的数组?

[英]How can I iterate through the “keywords” array of this object to return an array of only keywords?

我可以使用下面的 forEach 方法一次控制台记录一个关键字,但无法弄清楚如何从底部的 JSON 返回所有关键字的数组。 我希望为每个关键字的值条形图生成数组。 在 d3.js 可视化中,关键字将形成 Y 轴,而值将形成 X 轴。

data.forEach(function(d) {
  keywords = d.keywords
  console.log(keywords[0][0]);// "white"
});

{
        "title": "I'm Dreaming of a White Christmas",
        "artist": "Bing Crosby",
        "year": "1942",
        "sales": "50,000,000",
        "keywords": [
            [
                "white",
                6
            ],
            [
                "Christmas",
                6
            ],
            [
                "dreaming",
                4
            ],
            [
                "christmases",
                2
            ],
            [
                "merry",
                2
            ],
            [
                "write",
                2
            ],
            [
                "snow",
                2
            ],
            [
                "sleigh",
                2
            ],
            [
                "listen",
                2
            ],
            [
                "glisten",
                2
            ]
        ]
    }

我假设您的数据变量是您的 json object。 如果是这样,并且如果您想获取所有关键字(第一个元素)的数组,您可以使用.map()以这种方式:

 var data = { "title": "I'm Dreaming of a White Christmas", "artist": "Bing Crosby", "year": "1942", "sales": "50,000,000", "keywords": [ [ "white", 6 ], [ "Christmas", 6 ], [ "dreaming", 4 ], [ "christmases", 2 ], [ "merry", 2 ], [ "write", 2 ], [ "snow", 2 ], [ "sleigh", 2 ], [ "listen", 2 ], [ "glisten", 2 ] ] }; var keywords = data.keywords.map(function(d) { return d[0]; }); console.log(keywords);

创建一个空数组来存储结果。 然后,遍历关键字数组,将每个关键字的第一个元素推送到结果数组:

let results = [];
data.forEach(function(d) {
  d.keywords.forEach( function(keyword) {
    results.push( keyword[0] ); // "white"
  });
});
console.log( results );

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM