在Javascript中,如何在我刚刚“加入”的数组周围放置单引号?

时间:2011-12-06 22:42:37

标签: javascript arrays string

[3, 4, 5]
['4', '1', 'abc123']


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

无论什么类型的列表,我希望我的函数返回一个字符串,其中包含单引号

该函数应该返回:

'3','4','5'

'4','1','abc123'

我希望我的结果字符串中包含单引号!

3 个答案:

答案 0 :(得分:16)

简单的逻辑!

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

Example

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

示例输出:

(an empty string)
'3'
'3','4','a'

答案 1 :(得分:1)

  

如何将单引号放在我刚刚“加入”的数组周围?

您的方法似乎不必要地复杂。你最好:

  1. 创建包含所有转换为toString和引用
  2. 的元素的中间数组
  3. join中间数组

  4. [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(",");
    }
    

答案 2 :(得分:0)

像:

 function myjoin(arr) {
   return "'" + arr.join("','") + "'";
 }