избегайте двойных кавычек из массива

#javascript

#javascript

Вопрос:

я получаю вывод следующим образом

 ["/Vegetables/","/Fruits/"]
 

но я хочу вот так [/Vegetables/,/Fruits/]

вот мой код

     var varieties=[];
    for (var i = 0; i < catagories.length; i  ) {
    // actually catagories output is like this ["Vegetables","Fruits"]
    //here iam adding slashes for my requirement.

     var eg1 = "/" catagories[i] "/";
     var eg2= eg1.replace(/"/g, "");
    varieties.push(eg2);    
    }
console.log(JSON.stringify(varieties));
 

после использования «replace» я все еще получаю вывод, подобный ["/Vegetables/","/Fruits/"]

пожалуйста, помогите мне получить вывод, подобный [/Vegetables/,/Fruits/]

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

1. Это недопустимый JSON без кавычек.

2. Вы просто не можете . JSON всегда использует двойные кавычки для строковых значений.

3. У вас есть правильный вывод

4. Это не только недопустимый JSON, но и недопустимый JS… строка будет заключена в кавычки, несмотря ни на что.

Ответ №1:

В Javascript у вас не может быть строки без кавычек. «/Vegetables/» — это допустимая строка, но /Vegetables — ошибка, поскольку она не является ни именем переменной, ни строкой.

Ожидаемый результат — недопустимый массив JS. Чтобы получить выходные данные [/Vegetables,/Fruits], попробуйте использовать replace на выходе Stringify . Не уверен, почему у вас есть такое требование об удалении «», но приведенный ниже фрагмент должен соответствовать вашим требованиям.

 var catagories = ["Vegetables","Fruits"];
var eg1 = JSON.stringify(catagories); 
var eg2= eg1.replace(/"/g, "/");
console.log(eg2);
 

Вывод: [/Овощи /,/ Фрукты/]

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

1. Вы также могли бы упомянуть, что JSON.stringify добавляет кавычки вокруг всех строк.

2. @evolutionxbox спасибо за предложение. Да, вы правы. Stringify преобразует всю структуру JSON в строку, добавляя кавычки к нестроковым элементам.