我在javascript中有一个包含“aassd, v_value1 ,asadds, v_value2 ,asddasd ...”的数组,我需要提取以 v _ 在一个新数组中。
我使用下一个函数来获取值,但只得到第一个值。
function search (array,string) {
var arr= [];
for (var i=0; i<array.length; i++) {
if (array[i].match(string)){
arr.push(i)
return arr;
}
}
return -1;
}
search(array,'v_')
感谢。
答案 0 :(得分:2)
您应该使用.filter()
方法,如下所示:
function search (array,string) {
return array.filter(function (val) {
return val.substr(0, string.length) === string;
});
}
filter()
方法返回满足回调函数
答案 1 :(得分:0)
我认为以下可能有用。只是字符串匹配并推送到新数组(如果找到)。
var arr = ['aassd','v_value1','asadds','v_value2','asddasd'];
var newArr = []
substring = "v_";
for (var i = 0; i < arr.length; i++) {
if (arr[i].search(substring) === 0) {
newArr.push(arr[i]);
}
}
alert(newArr);
&#13;
答案 2 :(得分:0)
function search (array,string) {
var arr= [];
for (var i=0; i<array.length; i++) {
//Do not use MATCH here as you need values that STARTS WITH "v_", match will give you values like this asdasdav_asdasda also.
if (array[i].startsWith(string)){
//instead of this
//arr.push(i)
//use this , the above will push the index, this will push the VALUE(as asked in the question)
arr.push(array[i])
//remove this: as this breaks on the first true condition , hence you get one value.
//return arr;
}
}
return arr;
}
错误
arr.push(array[i])