用JS处理数据,期待分享各种处理办法

JS处理数据

将下面的数据testData处理数据targetData,大家都会用哪些方法处理呢?

let testData = [
            [
                {
                    "key": "status",
                    "name": "状态",
                    "hidden": false,
                    "defaultValue": "",
                    "type": "system",
                }
            ],
            [
                {
                    "key": "time",
                    "name": "时间",
                    "name_en": "",
                    "hidden": false,
                }
            ],
            [
                {
                    "key": "apple",
                    "name": "苹果",
                    "name_en": "",
                    "hidden": false,
                }
            ],
            [
                {
                    "key": "fish",
                    "name": "鱼",
                    "name_en": "",
                    "hidden": false,
                }
            ]
        ]

我期望的结果是:

 let targetData = [
            {
                "key": "status",
                "name": "状态",
                "hidden": false,
                "defaultValue": "",
                "type": "system",
            },
            {
                "key": "time",
                "name": "时间",
                "name_en": "",
                "hidden": false,
            },
            {
                "key": "apple",
                "name": "苹果",
                "name_en": "",
                "hidden": false,
            },
            {
                "key": "fish",
                "name": "鱼",
                "name_en": "",
                "hidden": false,
            }
        ]

testData.map(arr => {return arr[0]})

小魔女参考了bing和GPT部分内容调写:
要处理testData数据,可以使用JavaScript中的map()方法,通过map()方法可以将testData中的每一项数据映射到targetData中,从而实现数据处理的目的。

let targetData = testData.map(item => {
  return {
    name: item[0],
    age: item[1],
    isMale: item[2],
    hidden: item[3]
  }
})

另外,也可以使用JavaScript中的forEach()方法,通过forEach()方法可以遍历testData中的每一项数据,然后将其赋值给targetData,从而实现数据处理的目的。

let targetData = []
testData.forEach(item => {
  targetData.push({
    name: item[0],
    age: item[1],
    isMale: item[2],
    hidden: item[3]
  })
})

此外,还可以使用JavaScript中的reduce()方法,通过reduce()方法可以将testData中的每一项数据归纳到targetData中,从而实现数据处理的目的。

let targetData = testData.reduce((acc, item) => {
  acc.push({
    name: item[0],
    age: item[1],
    isMale: item[2],
    hidden: item[3]
  })
  return acc
}, [])

回答不易,记得采纳呀。

该回答引用ChatGPT

这是一个二维数组,可以使用 JavaScript 中的数组方法对数据进行处理。以下是一些处理方式:

使用 Array.prototype.flat() 方法将二维数组转化为一维数组,然后再使用 Array.prototype.map() 方法对每个对象进行转换:

let targetData = testData.flat().map(item => item[0]);

使用 Array.prototype.reduce() 方法对数组进行累加,将每个对象添加到一个新数组中:

let targetData = testData.reduce((acc, cur) => acc.concat(cur), []).map(item => item[0]);

两种方法的最终结果都是与期望的目标数据相同的。请注意,因为对象在 JavaScript 中是引用类型,所以这些方法都会返回一个新的数组,其中包含与原始对象相同的引用。如果需要更深层次的克隆,需要使用其他方法来避免对象引用的问题。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^