javascript - 如何将多维数组转换为对象中的arr
问题描述
你能解释一下如何将这个二维数组转换为数组并且在数组中有对象的逻辑,这里是输入:
const arr = [
["Tony", "a", "b"],
["Sara", "c", "z"]
];
如何将它们转换为:
obj = [
{
name:"Tony",
first:"a",
second:"b"
},
{
name:"Sara",
first:"c",
second:"z"
}
]
我们应该临时创建 2 个对象吗?将它们放入数组中,如何循环?我们可以只使用一次性循环吗?以及如果第一个或第二个 2d 数组长度与第一个或第二个 2d 不同,
我很想知道这个方法,如果你不介意解释一下,我喜欢你们都不要为此使用 ES6 :),所以我知道逻辑
解决方案
使用Array.map()
. 在地图的回调中,使用数组解构将值提取到变量中,然后使用简写属性名称创建对象:
const arr = [["Tony", "a", "b"], ["Sara", "c", "z"]];
const result = arr.map(([name, first, second]) => ({
name,
first,
second
}));
console.log(result);
如果您不想使用,您可以使用循环Array.map()
构建一个:for...of
const map = (arr, cb) => {
const r = [];
for(const item of arr) {
r.push(cb(item));
}
return r;
};
const arr = [["Tony", "a", "b"], ["Sara", "c", "z"]];
const result = map(arr, ([name, first, second]) => ({
name,
first,
second
}));
console.log(result);
推荐阅读
- javascript - 带有 max 属性的 sweetalert2 输入数字,错误放置?
- php - get_class() 期望参数 1 是对象,给定 null (Yajra Datatable)
- typo3 - 如何添加作为不同模型数组的字段
- sql - oracle 是否支持 stftime() 函数?
- javascript - 如何使用 moment.js 将日期格式化为 ISO 日期(mongodb)?
- sql - 如果记录存在,我可以更新它,如果不存在,我可以在 SQL Server 的单个查询中为多行插入它吗?
- java - Jmeter - 使用 HTTP 请求在 Jmeter 中构造 URL
- r - 将特定行转换为 R 中的新列
- sql - 如何将 Oracle SQL 中的存储过程从一个模式移动到另一个模式?
- javascript - 如何使用 Nextjs 显示 mp4 文件格式?