我有一个像:
这样的数组["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推荐解决方案。
答案 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+/
结构 - 这样它确实与元素的顺序或可能存在的其他任意值无关,它只使用与所需模式匹配的元素。