Сложные переменные Javascript, содержащие значения других назначенных переменных? - PullRequest
0 голосов
/ 23 апреля 2019

Я абсолютный новичок и неуч, когда дело доходит до JavaScript. В отличие от других компьютерных языков, с которыми я сталкивался, Javascript имеет эти сложные вложенные переменные. Можно ли построить такие переменные, как эта?

Например, в

var verycomplexstruct: {
  this: "some value", {
    that: [123,45,67,78,89,123], {

etc

могу ли я иметь этот тип определения,

var abc = "123"; 
var myData = [123,45,67,78,89,123];

var verycomplexstruct: {
  this: abc, {
    that: mydata, {

etc

Не удивительно, что, похоже, не работает. Вариант использования находится в charts.js, где структура переменных данных диаграммы очень хитрая и подвержена ошибкам, но где одна и та же диаграмма используется постоянно все время с изменением только обновленной метки и наборов данных. Мне кажется разумной идея иметь отдельные переменные для часто обновляемых данных. Но как этого добиться в Javascript?

Ответы [ 2 ]

1 голос
/ 23 апреля 2019

Ваш синтаксис не будет работать в вашем первом примере в нескольких местах.Там есть несколько отличных уроков.Большинство из вышеперечисленных проблем связано с тем, что вы не присваиваете все в своем объекте клавише.

Например, у вас есть шаблон

var myObject = {
    thing1: 'thing one',
    {
        thing2: 'thing two',
    }, // etc
}

после первой запятойв той же строке, что и 'thing one', вы запускаете другой объект.Вам необходимо назначить этот объект ключу в родительском объекте.

var myObject = {
    thing1: 'thing one',
    secondObject: {
        thing2: 'thing two',
    }, // etc
}

Но, как я уже сказал, для начинающего JS существует множество ресурсов.Я бы начал там до публикации в SO.

0 голосов
/ 23 апреля 2019

Да. Правая часть пары name: property в литерале объекта просто должна быть выражением.

Ваши проблемы вызваны опечатками, а не использованием переменных.


  • JavaScript чувствителен к регистру. myData и mydata - это разные имена переменных
  • Переменные назначения используют =, а не :
  • Объекты построены из property: value, разделенных запятыми. Вы иногда забывали часть property: и только что имели значение.

var abc = "123";
var myData = [123, 45, 67, 78, 89, 123];

var verycomplexstruct = {
  this: abc,
  something: {
    that: myData, 
    something_else: {}
  }
};

console.log(verycomplexstruct);
...