В Javascript, как поместить одинарные кавычки в массив, к которому я только что «присоединился»? - PullRequest
6 голосов
/ 07 декабря 2011
[3, 4, 5]
['4', '1', 'abc123']


function combine_ids(ids){
    return ids.join(',');
};

Независимо от типа списка, моя функция должна возвращать строку с одинарными кавычками вокруг элементов.

Функция должна возвращать:

'3','4','5'

и

'4','1','abc123'

Я хочу, чтобы в моей результирующей строке были одинарные кавычки!

Ответы [ 3 ]

16 голосов
/ 07 декабря 2011

Простая логика!

function combine_ids(ids) {
   return (ids.length ? "'" + ids.join("','") + "'" : "");
}

Пример

console.log(combine_ids([]));
console.log(combine_ids([3]));
console.log(combine_ids([3, 4, 'a']));

Пример вывода:

(an empty string)
'3'
'3','4','a'
1 голос
/ 07 декабря 2011

как поместить одинарные кавычки вокруг массива, к которому я только что "присоединился"?

Ваш подход кажется излишне сложным.Вам лучше:

  1. Создать промежуточный массив со всеми преобразованными элементами toString и кавычками
  2. join промежуточный массив

[03:22:35.728] [3, 4, 5].map( function (element) { return "'" + String(element) + "'" } ).join(",")
[03:22:35.736] "'3','4','5'"
--
[03:22:58.925] ['4', '1', 'abc123'].map( function (element) { return "'" + String(element) + "'" } ).join(",")
[03:22:58.933] "'4','1','abc123'"

Примечание: map требуется метод JS 1.6+, версии ниже требуют, чтобы вы итерировали массив "вручную":

function combine_ids( array ) {
  var tmp = [];
  for ( var i = 0; i < array.length; i++ ) {
    tmp[i] = "'" + String( array[i] ) + "'";
  }
  return tmp.join(",");
}
0 голосов
/ 07 декабря 2011

Как:

 function myjoin(arr) {
   return "'" + arr.join("','") + "'";
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...