帮助初学者在js中有数据的形式:

[
    {
        "cmm": "erl",
        "pk": {
            "from": "",
            "to": "",
            "dt": "ZF"
        },
        "status": true,
        "mk": false,
        "rps": {
            "cll": "B90BD"
        }
    },
    {
        "cmm": "erl",
        "pk": {
            "from": "",
            "to": "",
            "dt": "7E"
        },
        "status": true,
        "mk": false,
        "rps": {
            "cll": "2E147FA3"
        }
    },
        {
        "cmm": "erl",
        "pk": {
            "from": "",
            "to": "",
            "dt": "7E"
        },
        "status": true,
        "mk": false,
        "rps": {
            "cll": "2E147FA3"
        }
    }
]

我想要一个逗号分隔的"cll"列表.B90BD,2E147FA3,2E147FA3.我试着过滤,但我得到一个错误.

function list(data) {
    const dtt = JSON.parse(data);
    console.log(dtt);
        const addrs = dtt.filter(function (item) {
        return item.rps;}).join(",");
        console.log(addrs);
    console.log(addrs);
        }

此命令有效,但我只获得第一个元素的数据.

function createTable(data) {
    const dtt = JSON.parse(data);
    const mm = dtt[0].rps;
    var myAr = mm.ccl;
    console.log(myAr);
        }

推荐答案

我会这样做:

function list(data) {
    const dtt = JSON.parse(data);
    const addresses = dtt
        .filter(function (item) {
            return item.rps && item.rps.cll; 
        })
        .map(function (item) {
            return item.rps.cll; 
        })
        .join(",");
    
    console.log(addresses);
}

首先,我们过滤你的数据,只保留rpscllrps以内的元素.然后我们使用map()创建一个新的数组,其中只有rps.cll的值.最后,我们用逗号连接这些值,并将结果打印到控制台.

假设您的数据位于如下所示的变量中:

const jsonData = `
[
    {
        "cmm": "erl",
        "pk": {
            "from": "",
            "to": "",
            "dt": "ZF"
        },
        "status": true,
        "mk": false,
        "rps": {
            "cll": "B90BD"
        }
    },
    {
        "cmm": "erl",
        "pk": {
            "from": "",
            "to": "",
            "dt": "7E"
        },
        "status": true,
        "mk": false,
        "rps": {
            "cll": "2E147FA3"
        }
    },
    {
        "cmm": "erl",
        "pk": {
            "from": "",
            "to": "",
            "dt": "7E"
        },
        "status": true,
        "mk": false,
        "rps": {
            "cll": "2E147FA3"
        }
    }
]
`;

您可以这样调用该函数:

list(jsonData);      // Output: B90BD,2E147FA3,2E147FA3

Javascript相关问答推荐

如何按预期聚合SON数据?

禁用从vue.js 2中的循环创建的表的最后td的按钮

我不知道为什么我的JavaScript没有验证我的表单

成帧器运动中的运动组件为何以收件箱开始?

我应该在redux reducer中调用其他reducer函数吗?

vscode扩展-webView Panel按钮不起任何作用

Chart.js V4切换图表中的每个条,同时每个条下有不同的标签.怎么做?

在nextjs服务器端api调用中传递认证凭证

手机上的渲染错误文本必须在文本组件中渲染,但在浏览器上没有问题<><>

如何使onPaste事件与可拖动的HTML元素一起工作?

编剧如何获得一个div内的所有链接,然后判断每个链接是否都会得到200?

类构造函数忽略Reaction Native中的可选字段,但在浏览器中按预期工作

Reaction组件在本应被设置隐藏时仍显示

当代码另有说明时,随机放置的圆圈有时会从画布上消失

令牌JWT未过期

WebSocketException:远程方在未完成关闭握手的情况下关闭了WebSocket连接.&#三十九岁;

react 路由DOM有条件地呈现元素

如果我的列有条件,我如何呈现图标?

限制数组中每个元素的长度,

为什么我的Reaction组件不能使用createBrowserRouter呈现?