2017-06-05 83 views
-1

化妆用逗号分隔的字符串我有JavaScript的多维数组是这样的:从多维数组

a 1 
b 2 
c 3 

我想它转换成逗号分隔值是这样的:

function reg() { 
    var result = []; 
    var comma_value; 

    for (var i = 0; i < arrc.length; i++) { 
     if (parseInt(arrc[i].value)) { 
      result.push([arrp[i].value, arrc[i].value]); 
     } 

     // result is an array 
     // My desired result: 
     // comma_value = "a,1;b,2;c,3" 
    } 

    $('#str').val(JSON.stringify(result)); 

    console.table(result); 
    console.log(result.join(', ')); 
} 
+1

[MDN Array.prototype.join()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/join?v=example) –

+2

您能否澄清多维数组结构?你'这个'很难理解。 –

+0

我试过了,但不能正常工作 – sudhara

回答

3

鉴于您的意见,我假设你只是寻找Array.prototype.join(';')

let array = [ 
 
    ['a', 1], 
 
    ['b', 2], 
 
    ['c', 3] 
 
]; 
 

 
let comma_value = array.join(';'); 
 

 
console.log(comma_value); // 'a,1;b,2;c,3'

这工作由于隐式数组元素['a', 1]到字符串array.join(';')方法调用中执行'a,1'转换。

如果好奇如何工作的:

['a', 1].toString() // returns 'a,1' 

随后,这些字符串被接合与​​3210分离器:当调用array.join(';'),各个阵列元件首先通过Array.prototype.toString()方法转换为字符串在之间。

但是,我不明白这和你的评论如何与给定的reg()函数相关。该代码具有两个一维数组,其中包含{value: ...}对象作为元素。

+0

实际上不使用'join',而是使用'toString'来获取内部数组的原始值。它看起来像'join',但它是'toString'。 –

+0

@NinaScholz你是对的,但是这一切都发生在'array.join(';')'方法调用中。我不确定OP是否对该方法调用中的字符串转换发生了如何感兴趣。我稍微澄清了答案。 –

+0

我会感兴趣... ;-) –

1
alert([["a",1],["b",2]].map(e=>e.join()).join(";")); 

加入内部数组,然后外...