В конце не ставить запятую

228
24 февраля 2017, 02:35

Формирую строку

    for (var i = 0; i < json_length; i++) {
  tmppie_traffic_source+='{"title" : '+'"'+json.data[i].name+ '","litres" : '+json.data[i].visits+'},';
                        }  

Как сделать так,что в последней итерации цикла к конце не ставилась запятая?

json.data[i].visits+'},';

Сейчас решаю проблему через replace, но думаю можно как то иначе

Answer 1

Используйте для конструирования строки в формате JSON функцию JSON.stringify.

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

Answer 2

Делайте проще:

let data = ['A', 42, true]; 
 
let json = `{${data.map(e => `["type": "${typeof e}", "name": "${e}"]`).join(',')}`; 
console.info(json);

Answer 3

var json = { data: [ 
             {name: "John", visits: 23}, 
             {name: "Mary", visits: 45} 
           ]}; 
var json_length = json.data.length; 
 
var items = []; 
for (var i = 0; i < json_length; i++) { 
  items.push('{"title" : "'+json.data[i].name+'","litres" : '+json.data[i].visits+'}'); 
}   
tmppie_traffic_source = items.join(","); 
 
console.log(tmppie_traffic_source );

Answer 4

var json = {}; 
json.data = [{name:'a', visits: 1, smth: 'z'}, {name:'b', visits: 2, smth: 'y'}]; 
var json_length = json.data.length; 
var tmppie_traffic_source = []; 
 
for (var i = 0; i < json_length; i++) { 
  tmppie_traffic_source.push({ 
    title: json.data[i].name, 
    litres: json.data[i].visits 
  }); 
} 
tmppie_traffic_source = JSON.stringify(tmppie_traffic_source); 
console.log(tmppie_traffic_source.replace(/[\[\]]/g, ''));

Answer 5
for (var i = 0; i < json_length; i++) {
  tmppie_traffic_source+='{"title" : '+'"'+json.data[i].name+ '","litres" : '+json.data[i].visits+'}'+((i+1)==json_length)?'':',';
}  
READ ALSO
JavaScript Проверка на аргумент-undefined

JavaScript Проверка на аргумент-undefined

Изучаю JavaScriptТема: «Псевдомассив аргументов "arguments"»

242
Node.js. Express, как использовать middleware только для корня

Node.js. Express, как использовать middleware только для корня

Хочу сделать авторизацию при переходе в корень сайта, остальные ссылки не трогатьПытаюсь сделать:

215
Удаления символа BOM :(

Удаления символа BOM :(

Проблема заключается в том, что после названия файла с темой css доставляется символ BOMВыглядит так:

186