我有这个数组
array=["product1 250","product2 500","product3 750"]
空格代表制表符。 我想像这样拆分数组..
array_1=["product1","product2","product3"]
array_2=["250","500","750"]
我如何使用Javascript执行此操作?
答案 0 :(得分:2)
你可以将它们作为一个数组数组,通过在Array.prototype.reduce
的数组数组中拆分和收集拆分字符串,你可以访问具有相应索引的各个数组,如下所示
var array = ["product1 250", "product2 500", "product3 750"];
var arrays = array.reduce(function(result, currentItem) {
var splits = currentItem.split(/\s+/);
result[0].push(splits[0]);
result[1].push(splits[1]);
return result;
}, [[], []]);
console.log(arrays[0], arrays[1]);
# [ 'product1', 'product2', 'product3' ] [ '250', '500', '750' ]
如果需要,您可以将第一个和第二个元素分配给不同的变量,例如
var array_1 = arrays[0], array_2 = arrays[1];
答案 1 :(得分:1)
您可以遍历数组中的每个单元格,并在值上调用split("\t");
。然后将返回传递给每个数组。 (假设选项卡是实际的\t
而不仅仅是空白量)
答案 2 :(得分:1)
我和@thefoureye写了几乎相同的答案,但我使用的是一个对象来存储结果。
var result = yourArray.reduce(function(acumulator, current) {
var values = current.split('\t');
acumulator.products.push(values[0]);
acumulator.prices.push(values[1]);
return acumulator;
}, { products: [], prices: [] })
console.log(result.products, result.prices);
var array1 = [], array2 = [];
yourArray.forEach(function(item) {
var values = item.split('\t');
array1.push(values[0]);
array2.push(values[1]);
});