Использовать запятую в переменной?

#javascript #jquery

#javascript #jquery

Вопрос:

Есть ли способ преобразовать это:

 $('#id').testfunction({
  'source' : [
    {'source':'pathimage.jpg','title':'Title 1','description':'This is a description 1.'},
    {'source':'pathimage.jpg','title':'Title 2','description':'This is a description 2.'},
    {'source':'pathimage.jpg','title':'Title 3','description':'This is a description 3.'},
    {'source':'pathimage.jpg','title':'Title 4','description':'This is a description 4.'},
    {'source':'pathimage.jpg','title':'Title 5','description':'This is a description 5.'}
  ]
});
 

Для простого динамического вывода:

 $('#id').testfunction({
  'source':[
    $SOURCE
  ]
});
 

Я помещаю исходный код в массив и пытаюсь снова его сконструировать $SOURCE . В $SOURCE конечном итоге это должно выглядеть так:

 $SOURCE = myArray[0], myArray[1], myArray[2], myArray[3], myArray[4];
 

Но именно запятая мешает работе переменной. Я не могу вставить запятую в переменную. Использование "," не работает, поскольку распознает его как строку…

 $SOURCE  = myArray[s],;
 

Есть ли способ преобразовать это в рабочую переменную для динамического использования?

Комментарии:

1. Почему нет: source: [myArray[0], myArray[1], myArray[2], myArray[3], myArray[4]] или даже source: myArray ? Возможно, если вы предоставите дополнительную информацию о том, чего вы на самом деле хотите достичь, мы сможем дать более полезные ответы. Я не совсем уверен, чего вы хотите достичь.

2. Похоже, это проблема XY .

3. это запятая, которая не позволяет динамически создавать ее, чтобы она работала. когда я помещаю все эти массивы вручную, это, конечно, просто работает.

Ответ №1:

Нет, потому что если $SOURCE бы это был массив, то вы бы присваивали массив первому элементу source параметра; и $SOURCE не можете представить массив так, как вы ожидаете.

Не существует юридической конструкции, с помощью которой вы могли бы объединять переменные с помощью запятой.

Ответ №2:

Вы хотите поместить некоторые значения из одного массива в другой. Это должно сработать, но мне кажется немного глупым (или вы могли бы просто перебрать myArray, или вы могли бы просто сказать $SOURCE = myArray ):

 $SOURCE = [];
$SOURCE.push(myArray[0]);
$SOURCE.push(myArray[1]);
$SOURCE.push(myArray[2]); 
$SOURCE.push(myArray[3]); 
$SOURCE.push(myArray[4]);
 

Ответ №3:

То, что вы ищете, называется макросом препроцессора. Они не существуют в javascript.