javascript - NodeJS - 从多级对象数组中提取数据

标签 javascript arrays node.js object

我有以下 JSON 数组:

{
"list": [{
    "name": "Assignment",
    "id": 67,
    "template": 0,
    "children": [{
        "assignmentnumber": 1000,
        "fromCountry": "Sweden",
        "toCountry": "Spain",
        "fromCity": "Stockholm",
        "toCity": "Madrid"
    }, {
        "assignmentnumber": 15678,
        "fromCountry": "Sweden",
        "toCountry": "Germany",
        "fromCity": "Stockholm",
        "toCity": "Berlin"
    }, {
        "assignmentnumber": 10001,
        "fromCountry": "Sweden",
        "toCountry": "United Kingdom",
        "fromCity": "Stockholm",
        "toCity": "London"
    }]
}, {
    "name": "Valuation form",
    "id": 36,
    "template": 0,
    "children": [15678]
}, {
    "name": "Claim",
    "id": 12,
    "template": 0,
    "children": [1000, 10001]
}]
}

我需要从仅包含“name”元素的数组中提取一个新数组。我尝试过 lodash,但不知道如何正确使用它。

谁能告诉我如何做到这一点?

最佳答案

您应该使用map方法,该方法接受callback函数作为参数。

The map() method creates a new array with the results of calling a provided function on every element in this array.

var array=obj.list.map(callback);
function callback(item){
    return item.name;
}

或者简单地说:

var array=obj.list.map(el=>el.name);

var obj={
"list": [{
    "name": "Assignment",
    "id": 67,
    "template": 0,
    "children": [{
        "assignmentnumber": 1000,
        "fromCountry": "Sweden",
        "toCountry": "Spain",
        "fromCity": "Stockholm",
        "toCity": "Madrid"
    }, {
        "assignmentnumber": 15678,
        "fromCountry": "Sweden",
        "toCountry": "Germany",
        "fromCity": "Stockholm",
        "toCity": "Berlin"
    }, {
        "assignmentnumber": 10001,
        "fromCountry": "Sweden",
        "toCountry": "United Kingdom",
        "fromCity": "Stockholm",
        "toCity": "London"
    }]
}, {
    "name": "Valuation form",
    "id": 36,
    "template": 0,
    "children": [15678]
}, {
    "name": "Claim",
    "id": 12,
    "template": 0,
    "children": [1000, 10001]
}]
};
console.log(obj.list.map(function(item){
    return item.name;
}));

关于javascript - NodeJS - 从多级对象数组中提取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42426244/

相关文章:

node.js - npm 启动 Microsoft JScript 运行时错误 800A138F 预期对象

node.js - 使用 Node.js http GET 请求发送浏览器、referer 和 cookie

javascript - React Native - 如何从子组件调用函数?

arrays - VBA excel : Filtering By date and assigning Criteria2 value to a variable?

c++ - 数组是如何传递的?

javascript - 循环数组Javascript后替换对象属性值中的字符串

javascript - CORS 政策 : No 'Access-Control-Allow-Origin' /500 (Internal Server Error) Problem

如果网页 URL 链接失败,Javascript URL 重定向

javascript - 如何检测 DOM 属性的变化?

node.js - Http 请求未路由到 Https NodeJs