我在一个名为maintemp的变量中有一个数组对象.

const maintemp = [
[
    {
    equipId: 1,
    name: '1메인 온도 센서',
    sensors: [
        {
        tagId: 11,
        name: '온도',
        value: 28.8,
        tagClass: {
            bitCalcYn: 'N',
            code: 'INNERTEMP',
            encoding: 'ONEDECIMALPOINT',
            isDigital: 'N',
        },
        },
    ],
    },
    {
    equipId: 2,
    name: '1메인 습도 센서',
    sensors: [
        {
        tagId: 22,
        name: '습도',
        value: 50.3,
        tagClass: {
            bitCalcYn: 'N',
            code: 'INNERAHUM',
            encoding: 'ONEDECIMALPOINT',
            isDigital: 'N',
            name: '실내 습도',
        },
        },
    ],
    },
],

[
    {
    equipId: 3,
    name: '2메인 온도 센서',
    sensors: [
        {
        tagId: 11,
        name: '온도',
        value: 28.8,
        tagClass: {
            bitCalcYn: 'N',
            code: 'INNERTEMP',
            encoding: 'ONEDECIMALPOINT',
            isDigital: 'N',
        },
        },
    ],
    },
    {
    equipId: 4,
    name: '2메인 습도 센서',
    sensors: [
        {
        tagId: 22,
        name: '습도',
        value: 50.3,
        tagClass: {
            bitCalcYn: 'N',
            code: 'INNERAHUM',
            encoding: 'ONEDECIMALPOINT',
            isDigital: 'N',
            name: '실내 습도',
        },
        },
    ],
    },
],
];

此时,我只想使用map函数和Filter函数将tag Class.code为‘INNERTEMP’的对象放入变量Fill中.

但是,当我运行代码时,整个数组不会被过滤,并且整个数组存储在Fill变量中.我如何修复代码?

这是我的代码

const fill = maintemp.filter((v) =>
  v.filter((hi) => hi.sensors[0].tagClass.code === "INNERTEMP'")
);

预期答案

const fill = [
    {
        equipId: 1,
        name: '1메인 온도 센서',
        sensors: [
        {
            tagId: 11,
            name: '온도',
            value: 28.8,
            tagClass: {
            bitCalcYn: 'N',
            code: 'INNERTEMP',
            encoding: 'ONEDECIMALPOINT',
            isDigital: 'N',
            },
        },
        ],
    },
    {
        equipId: 3,
        name: '2메인 온도 센서',
        sensors: [
        {
            tagId: 11,
            name: '온도',
            value: 28.8,
            tagClass: {
            bitCalcYn: 'N',
            code: 'INNERTEMP',
            encoding: 'ONEDECIMALPOINT',
            isDigital: 'N',
            },
        },
        ],
    },

]

推荐答案

您可以首先展平数组,然后过滤项目:

fill = maintemp.flat().filter((hi) => hi.sensors[0].tagClass.code === "INNERTEMP")

const maintemp = [[{"equipId":1,"name":"1메인 온도 센서","sensors":[{"tagId":11,"name":"온도","value":28.8,"tagClass":{"bitCalcYn":"N","code":"INNERTEMP","encoding":"ONEDECIMALPOINT","isDigital":"N"}}]},{"equipId":2,"name":"1메인 습도 센서","sensors":[{"tagId":22,"name":"습도","value":50.3,"tagClass":{"bitCalcYn":"N","code":"INNERAHUM","encoding":"ONEDECIMALPOINT","isDigital":"N","name":"실내 습도"}}]}],[{"equipId":3,"name":"2메인 온도 센서","sensors":[{"tagId":11,"name":"온도","value":28.8,"tagClass":{"bitCalcYn":"N","code":"INNERTEMP","encoding":"ONEDECIMALPOINT","isDigital":"N"}}]},{"equipId":4,"name":"2메인 습도 센서","sensors":[{"tagId":22,"name":"습도","value":50.3,"tagClass":{"bitCalcYn":"N","code":"INNERAHUM","encoding":"ONEDECIMALPOINT","isDigital":"N","name":"실내 습도"}}]}]];

const fill = maintemp.flat().filter((hi) => hi.sensors[0].tagClass.code === "INNERTEMP")

console.log(fill)
.as-console-wrapper { max-height: 100% !important; }

Javascript相关问答推荐

如何访问Json返回的ASP.NET Core 6中的导航图像属性

IMDB使用 puppeteer 加载更多按钮(nodejs)

仅针对RTK查询中的未经授权的错误取消maxRetries

在grafana情节,避免冲突的情节和传说

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

400 bad request error posting through node-fetch

使用Nuxt Apollo在Piniastore 中获取产品细节

使用父标签中的Find函数查找元素

Docent.cloneNode(TRUE)不克隆用户输入

通过跳过某些元素的对象进行映射

如何在AG-Grid文本字段中创建占位符

如何在脚本编译后直接将RxJ模块导入浏览器(无需Angel、webpack、LiteServer)

是否设置以JavaScript为背景的画布元素?

在执行console.log(new X())时记录一个字符串

MAT-TREE更多文本边框对齐问题

单击时同时 Select 和展开可访问的行

正在发出错误的URL请求

响应,Use Callback更新状态变量,该变量也存在于其依赖数组中,它如何防止无限重新呈现?

Select 所有输入.值

如何在预览中显示html+css与数据URL?