首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用javascript将对象转换为二维数组

如何使用javascript将对象转换为二维数组
EN

Stack Overflow用户
提问于 2019-05-07 14:53:34
回答 5查看 79关注 0票数 0

我有一个类似这样的对象:

代码语言:javascript
复制
{
    "sample.JPG": {
        "id": "c9a29270",
        "filename": "sample.JPG"
    },
    "test.JPG": {
        "id": "c6a270",
        "filename": "test.JPG"
    },
    "sample1.JPG": {
        "id": "c70",
        "filename": "sample1.JPG"
    },
    "test2.JPG": {
        "id": "c6a",
        "filename": "test2.JPG"
    }
}

并希望它是这样的:

代码语言:javascript
复制
[["fakepath/sample.JPG", "c9a29270"], ["fakepath/test.JPG", "c6a270"]]

在这里,伪路径只表示静态/硬编码路径

我尝试的是

代码语言:javascript
复制
Object.keys(myobj).map((key)=> {
    return myoby[key];
});

但是结果符合我的需要,有什么建议吗?

我做了这样的事情:

代码语言:javascript
复制
for(var i in obj){
    this.arr.push(['fakepath/' + i,obj[i].id])
}

可以吗?

EN

回答 5

Stack Overflow用户

发布于 2019-05-07 14:57:04

你可以在Object.values上使用map(),它非常简洁,而且比循环更容易阅读:

代码语言:javascript
复制
let o = {"sample.JPG": {"id": "c9a29270","filename": "sample.JPG"},"test.JPG": {"id": "c6a270","filename": "test.JPG"},"sample1.JPG": {"id": "c70","filename": "sample1.JPG"},"test2.JPG": {"id": "c6a","filename": "test2.JPG"}}

let arr = Object.values(o).map(({id, filename}) => ['fakepath/' + filename, id])
console.log(arr)

票数 3
EN

Stack Overflow用户

发布于 2019-05-07 14:56:22

您可以使用Object.keysmap

代码语言:javascript
复制
let obj = { "sample.JPG": { "id": "c9a29270", "filename": "sample.JPG" }, "test.JPG": { "id": "c6a270", "filename": "test.JPG" }, "sample1.JPG": { "id": "c70", "filename": "sample1.JPG" }, "test2.JPG": { "id": "c6a", "filename": "test2.JPG" } } 
console.log(Object.keys(obj).map(key=> [`fakepath/${key}`, obj[key].id]));

票数 2
EN

Stack Overflow用户

发布于 2019-05-07 14:56:41

映射对象的Object.entries

代码语言:javascript
复制
const input = {
  "sample.JPG": {
    "id": "c9a29270",
    "filename": "sample.JPG"
  },
  "test.JPG": {
    "id": "c6a270",
    "filename": "test.JPG"
  },
  "sample1.JPG": {
    "id": "c70",
    "filename": "sample1.JPG"
  },
  "test2.JPG": {
    "id": "c6a",
    "filename": "test2.JPG"
  }
};
const output = Object.entries(input)
  .map(([key, { id, filename }]) => ([`fakepath/${filename}`, id]))
console.log(output);

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56017078

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档