Как я могу сохранить объект более элегантным способом - PullRequest
1 голос
/ 03 апреля 2020

У меня есть объект:

var parementro = {
  myparam:{
    param:"\n ..",
    param1:"\n ..",
    param2: "\n ..",
    param3: "\n ..",
    param4: "\n \t ..",
    param5: "\n \t ..",
    param7: "\n \t .."
  },
  endparams:{
    param: "stop"   
  }
};

Внутри переменных param, param1 ... есть строки, и я хочу написать текст с этим параметром, param1, .... Объект

 paramentro.myparam 

имеет больше параметров, чем семь. Как сохранить эти строки, не записывая непрерывно param8, param9 et c. Этот объект имеет статус c, он не изменяется динамически, и по этой причине я создал такой объект.

Ответы [ 4 ]

1 голос
/ 03 апреля 2020

Как говорится в другом комментарии, вы можете использовать массив, поскольку ваши ключи просто увеличиваются каждый раз. Затем вы можете использовать различные методы для заполнения или манипулирования массивом и его содержимым. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array#Instance_methods

Но, если вы действительно хотите использовать объект, вы можете использовать массив для назначения ключей и значений вашему объекту различными способами. (ниже используется ES6 и может быть также изменен для заполнения массива)

const anObject = {};

Array.from(new Array(5)).map((each, index) => anObject[`param${index}`] = "my string");

https://jsbin.com/baqaxocosa/edit?js, консоль

0 голосов
/ 05 апреля 2020

Вы можете использовать Object.values ​​ для этих целей:

let parementro = {
  myparam:{
    param:"\n ..",
    param1:"\n ..",
    param2: "\n ..",
    param3: "\n ..",
    param4: "\n \t ..",
    param5: "\n \t ..",
    param7: "\n \t .."
  },
  endparams:{
    param: "stop"   
  }
};

Object.values(parementro.myparam).join(',')
0 голосов
/ 04 апреля 2020

Если вы хотите использовать объект

var parementro = {
  myparam:{
    param:"\n ..",
    param1:"\n ..",
    param2: "\n ..",
    param3: "\n ..",
    param4: "\n \t ..",
    param5: "\n \t ..",
    param7: "\n \t .."
  },
  endparams:{
    param: "stop"   
  }
};

const obj = {...parementro.myparam}
console.log(obj)

, если вы хотите использовать массив

var parementro = {
  myparam:{
    param:"\n ..",
    param1:"\n ..",
    param2: "\n ..",
    param3: "\n ..",
    param4: "\n \t ..",
    param5: "\n \t ..",
    param7: "\n \t .."
  },
  endparams:{
    param: "stop"   
  }
};

const obj1 = {...parementro.myparam}
const obj = Object.values(obj1)
console.log(obj)
0 голосов
/ 03 апреля 2020

Вы можете использовать что-то вроде этого

x - (количество параметров -1)

for(let i=0; i<=x; i+=1){
parementro.myparam = { ...parementro.myparam, [(i>0) ? `param${i}`: 'param']:'\n'}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...