2016-05-28 3 views

ответ

2

Чтобы получить как массив использовать map()

var s1 = '[a,b,c]', 
 
    s2 = '[x,y,z]'; 
 
console.log(
 
    s1 
 
    .slice(1, -1) // remove the `[` and `]` 
 
    .split(',') // split based on `,` 
 
    .map(function(a) { // iterate and generate array 
 
    return a + s2; 
 
    }) 
 
)


Чтобы получить в виде строки используйте reduce()

var s1 = '[a,b,c]', 
 
    s2 = '[x,y,z]'; 
 
console.log(
 
    s1 
 
    .slice(1, -1) // remove `[` and `]` 
 
    .split(',') // split based on `,` 
 
    .reduce(function(a, b) { // iterate and generate string 
 
    return a + (a.length ? '\n' : ' ') + b + s2; 
 
    }, '') 
 
)

+0

что, если есть 'п' число элементов в тех строках – user4381753

+0

@ user4381753: он будет с любым количеством строк –

0
<?php 

$s1 = '[a,b,c]'; 
$s2 = '[x,y,z]'; 

$items = explode(',', trim($s1, '[]')); 
foreach ($items as $item) { 
    echo($item . $s2 . "\n"); 
} 
0

Решение с использованием String.slice и String.replace функции:

var keys = '[a,b,c,d,e]', values = '[x,y,z]', 
    output = keys.slice(1, -1).replace(/([a-z]),?/g, function(m, p1){ 
     return p1 + values + "\n"; 
    }); 

console.log(output); 

Выход:

a[x,y,z] 
b[x,y,z] 
c[x,y,z] 
d[x,y,z] 
e[x,y,z] 
Смежные вопросы