使用javascript

时间:2017-06-14 01:59:39

标签: javascript arrays

我有一个像:

这样的数组
["ds","1:0,1,2,3,4","2:0,2,3,4,5","3:0,6,7,8,9"]

我想获取它具有以下内容的元素:

[1:0,2:0,3:0](只有数组中每个字符串的第一个元素离开ds元素)

请使用JavaScript推荐解决方案。

4 个答案:

答案 0 :(得分:-1)

使用forEach循环播放数组,split使用','。



var arr = ["ds", "1:0,1,2,3,4", "2:0,2,3,4,5", "3:0,6,7,8,9"];
var newArr = [];
arr.forEach(function(el,index) {
  if(index!=0)
  newArr.push(el.split(',')[0]);
});
console.log(newArr)




答案 1 :(得分:-1)

var newarray = [];

oldarray.splice(0,1);
oldarray.forEach(function (element) {
  newarray.push(element.split(",")[0]);
});

答案 2 :(得分:-1)

var arr = ["ds","1:0,1,2,3,4","2:0,2,3,4,5","3:0,6,7,8,9"];

var newArr = arr.slice(1, arr.length).map(function (el) {
	return el.split(',')[0];
});
console.log(newArr);

答案 3 :(得分:-1)

您可以使用array .reduce() method



var input = ["ds","1:0,1,2,3,4","2:0,2,3,4,5","3:0,6,7,8,9"]

var output = input.reduce(function(acc, str) {
  var val = str.match(/^\d+:\d+/)
  if (val) acc.push(val[0])
  return acc
}, [])

console.log(output)




处理每个元素时,您可以说if (str != "ds")或根据索引跳过第一个元素,然后使用str.split(",")[0].slice().substr()和{的某种组合{1}}或者其他什么,但我选择使用带有.match() method的正则表达式.indexOf()来检查每个输入元素在开头是否包含/^\d+:\d+/结构 - 这样它确实与元素的顺序或可能存在的其他任意值无关,它只使用与所需模式匹配的元素。