如何使用JavaScript中的函数式编程向数组添加元素

时间:2018-08-13 11:56:31

标签: javascript arrays functional-programming

在此处输入代码我仍在努力思考此功能性编程范例的工作方式。我有一个零件名称数组,如果它们符合条件,我想在该数组中添加更多名称。如何以功能性方式添加元素?感谢您的帮助。

编辑: 那真是快速的反馈。 目前,我没有数组,但是只有符合条件的零件名称列表。不确定这是否会使情况更糟,但是零件本身将是具有名称,成本和零件号等的对象。

编辑:这是我最终想到的。不知道这是否是最好的,但目前仍在工作。请随时告诉我可以改进的地方。我真的很想了解我们做事的方式和原因。

function isGroupTag(arr) {
    return arr.nodeName === "Group";
}

function makePartObject(xml) {
    return {
        rsn : getInnerHTMLValueOfChildren(xml, "MTR_COMP.RSN"),
        partNumber : getInnerHTMLValueOfChildren(xml, "MTR_COMP.PART_NO"),
        niin : getInnerHTMLValueOfChildren(xml, "MTR_COMP.NIIN"),
        fsc : getInnerHTMLValueOfChildren(xml, "MTR_COMP.FSC"),
        cost : getInnerHTMLValueOfChildren(xml, "MTR_COMP.COST")
    }
}

function getReport(xml, reportNumber) {
    report = xml.children[0].children[reportNumber].children[1].children[1].children[0];
    let partReport = report.children[1];
    // Create a part Array
    let arr = Array.from(report.children);
    // Filter out header and footer part of array
    let parts = arr.filter(isGroupTag);
    let partList = parts.map(function (x) { return makePartObject(x, partReport)});
}

1 个答案:

答案 0 :(得分:0)

那么你有这个吗?:

const partList = "tire, engine, chassis, transmission"

如果是这样,那我会...

创建一个包含所有部分的数组:

const parts = partList.split(", ");

并过滤该列表:

const filteredParts = parts.filter((part) => {return criteria.includes(part)});