JavaScript: сгенерированный объект с несколькими объектами внутри -> один объект - PullRequest
0 голосов
/ 17 сентября 2018

Вот так выглядит мой объект:
this is how my object looks like, но мне нужен только один объект, например

obj = {
       var: "DB3,B0",
       zahl: "DB3,Int2",
       zahl2: "DB3,Int4",
       ...
       ...
      };

Как мне его преобразовать?Я пробовал разные вещи, но все это не будет работать внутри цикла.Я генерирую свой объект из строки с кодом, подобным следующему:

var text = msg.payload;
var nt = text.split(" ");
var n = nt.length;
var add = [];
var name = [];
var ab = [];
var variables = {};



for (var i = 0; i < n; i++) {

    ab[i] = nt[i].split(";");
    add[i] = ab[i][0];    
    name[i] = ab[i][1];
    variables[i] = {[name[i]] : add[i]};
}




msg.payloadvars = variables;
return msg;

Я думаю, что это должно быть довольно просто, но я не приду к решению.

ввод выглядит как

DB3,B0;var DB3,Int2;zahl DB3,Int4;zahl2 DB3,Int6;zahl3 DB3,Int8;zahl4 
DB3,Int10;zahl5 .....

Ответы [ 3 ]

0 голосов
/ 17 сентября 2018

Если вы хотите создать один объект, попробуйте следующее:

var variables = {};

for (var i = 0; i < n; i++) {

    ab[i] = nt[i].split(";");
    add[i] = ab[i][0];    
    name[i] = ab[i][1];
    variables[name[i]] = add[i];
}
console.log(variables);
0 голосов
/ 17 сентября 2018

Использование Array.reduce

let str = "DB3,B0;var DB3,Int2;zahl DB3,Int4;zahl2 DB3,Int6;zahl3 DB3,Int8;zahl4 DB3,Int10;zahl5";
let obj = str.split(" ").reduce((a,c) => {
  let v = c.split(";");
  Object.assign(a, {[v[1]]: v[0]});
  return a;
}, {});
console.log(obj);
0 голосов
/ 17 сентября 2018

Вы можете разбить строку по группам, а затем по значению и ключу.

var string = 'DB3,B0;var DB3,Int2;zahl DB3,Int4;zahl2 DB3,Int6;zahl3 DB3,Int8;zahl4 DB3,Int10;zahl5',
   target = Object.assign(
       ...string.split(' ').map(s => (([v, k]) => ({ [k]: v }))(s.split(';')))
    );
   
console.log(target);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...