相关疑难解决方法(0)

在Javascript中同时映射和过滤数组

我有一个对象数组,我想迭代生成一个新的过滤数组.但是,我还需要根据参数从新数组中过滤掉一些对象.我正在尝试这个:

function renderOptions(options) {
    return options.map(function (option) {
        if (!option.assigned) {
            return (someNewObject);
        }
    });   
}
Run Code Online (Sandbox Code Playgroud)

这是一个好方法吗?有更好的方法吗?我愿意使用任何库,如lodash.

javascript arrays

111
推荐指数
9
解决办法
7万
查看次数

JavaScript 嵌套对象结构中的递归树搜索

我试图弄清楚如何在这个 JSON 对象中递归搜索节点。我尝试过一些东西但无法得到它:

var tree = {
    "id": 1,
    "label": "A",
    "child": [
        {
            "id": 2,
            "label": "B",
            "child": [
                {
                    "id": 5,
                    "label": "E",
                    "child": []
                },
                {
                    "id": 6,
                    "label": "F",
                    "child": []
                },
                {
                    "id": 7,
                    "label": "G",
                    "child": []
                }
            ]
        },
        {
            "id": 3,
            "label": "C",
            "child": []
        },
        {
            "id": 4,
            "label": "D",
            "child": [
                {
                    "id": 8,
                    "label": "H",
                    "child": []
                },
                {
                    "id": 9,
                    "label": "I",
                    "child": []
                }
            ]
        }
    ] …
Run Code Online (Sandbox Code Playgroud)

javascript tree recursion json

9
推荐指数
1
解决办法
1万
查看次数

使用动态嵌套属性键对数组中的对象进行排序

我正在尝试对嵌套对象数组进行排序.它使用静态选择键,但我无法弄清楚如何动态获取它.

到目前为止,我已经有了这段代码

sortBy = (isReverse=false) => {
    this.setState(prevState => ({
        files: prevState.files.sort((a, b) => {
            const valueA = (((a || {})['general'] || {})['fileID']) || '';
            const valueB = (((b || {})['general'] || {})['fileID']) || '';

            if(isReverse) return valueB.localeCompare(valueA);

            return valueA.localeCompare(valueB);
        })
    }));
}
Run Code Online (Sandbox Code Playgroud)

此时键是硬编码的,['general']['orderID']但我想通过向函数添加一个keys参数来使这部分变为动态sortBy:

sortBy = (keys, isReverse=false) => { ...
Run Code Online (Sandbox Code Playgroud)

keys是一个嵌套键的数组.对于上面的例子,它将是['general', 'fileID'].

为实现这一目标需要采取哪些步骤?

注意:子对象可能是未定义的,因此我正在使用 a || {}

注2:我正在使用es6.没有外部包.

javascript arrays sorting object ecmascript-6

9
推荐指数
1
解决办法
429
查看次数

标签 统计

javascript ×3

arrays ×2

ecmascript-6 ×1

json ×1

object ×1

recursion ×1

sorting ×1

tree ×1