2016-01-19 2 views

ответ

0

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

var data = []; 
data.push('abc'); 
data.push(21);  
data.push('email'); 

метод использования join() массива, чтобы присоединиться (конкатенации) значения, указав разделитель

попробовать

alert("'" + data.join("','") + "'"); 

или

console.log("'" + data.join("','") + "'"); 

или просто

var value = "'" + data.join("','") + "'" ; 
document.body.innerHTML += value; 
+0

Не будет ли котировки вокруг '21'? –

+0

@torazaburo да, это будет, мой плохой, я пропустил эту конкретную деталь. – gurvinder372

2

Написать функцию процитировать строку:

function quote(s) { 
    return typeof s === 'string' ? "'"+s+"'" : s; 
} 

Теперь сопоставить массив и вставить элементы вместе с запятой:

data . map(quote) . join(',') 

Поскольку объединение с запятой - это способ по умолчанию преобразовать массив в строку, вы можете уйти без join в некоторых ситуациях:

alert (data . map(quote)); 

поскольку alert преобразует свой параметр в строку. То же самое с

element.textContent = data . map(quote); 
-1

Теперь data = ['abc', 21, 'email'];

Таким образом, мы можем использовать функцию forEach

var myString = ''; 

data.forEach(function(value, index){ 
    myString += typeof value === 'string' ? "'" + value + "'" : value; 
    if(index < data.length - 1) myString += ', '; 
}); 

console.log(myString) 

Сокращенный вариант:

myString = data.map(function(value){ 
    return typeof value === 'string' ? "'" + value + "'" : value; 
}).join(', '); 

console.log(myString); 

JSFiddle: https://jsfiddle.net/LeoAref/ea5fa3de/

+0

Вы должны использовать prv вместо использования внешней переменной myString. Кроме того, не будет ли добавлена ​​дополнительная запятая в конце? –

+0

Это интересно знать, почему я получил отрицательный ?! –

+0

@torazaburo Я исправил его ... –

Смежные вопросы