首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将多个数组转换为具有属性的对象数组

将多个数组转换为具有属性的对象数组
EN

Stack Overflow用户
提问于 2018-11-03 17:55:17
回答 1查看 47关注 0票数 0

我有一个txt文件,然后将每一行映射到一个数组中。我想让这些数组

代码语言:javascript
复制
    [
    "saddle (seat)",
    "asiento"
  ],
  [
    "seat clamp",
    "abrazadera de asiento"
  ],

使用Eng和Spa作为属性:

代码语言:javascript
复制
{    Eng: saddle (seat),
     Spa: asiento,
     Eng: seat clamp,
     Spa: abrazadera de asiento
}

这是我目前的代码

代码语言:javascript
复制
var fs = require('fs');

var output = fs.readFileSync('component names.txt', 'utf8')
    .replace(/(\r)/gm, "")
    .split('\n')
    .map(line => line.split('\t'))
     /* .reduce(() => {}, )
   components = []
    components[].push({
    Eng: line[0],
    Spa: line[1]
    }) */

console.log('output:', JSON.stringify(output, null, 2));
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-03 18:36:25

要获得一个对象数组,只需在map()上使用split()之后再对行进行\n。在\t中执行另一个拆分并返回对象:

代码语言:javascript
复制
let str = "saddle (seat)\tasiento\nseat clamp\tabrazadera de asiento"
let trans = str.split('\n').map(line => {
    let [Eng, Spa] = line.split('\t')
    return {Eng, Spa}
})
console.log(trans)

// Get all Spa values:
console.log(trans.map(item => item.Spa))

// Get all Eng values:
console.log(trans.map(item => item.Eng))

基于评论的编辑

您可以只打印trans.spa,因为这可能是许多值。要获得所有Spa值,您需要使用map来获得所有这些值,如下所示:

代码语言:javascript
复制
trans.map(item => item.Spa)

(加入上述节选)

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

https://stackoverflow.com/questions/53134019

复制
相关文章

相似问题

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