2016-01-22 58 views
0

我试图推.match()结果到一个数组,但我不希望在一个数组的数组。试图推动.match结果阵列

所以是有可能只能得到是结果数组中的价值?

$scope.iframes.duration.push($scope.iframes.src[i].match(/data-duration="[^]*?"/g)); 

这就是我现在要做的;但是,我不想在原始数组中添加一个新数组,我只想得到结果的值。

回答

1

您可以使用Array#concatduration数组内添加match结果数组元素。

$scope.iframes.duration = $scope.iframes.duration.concat($scope.iframes.src[i].match(/data-duration="[^]*?"/g)); 

concat()不更新实际数组,它返回更新的数组。要更新数组,可以将concat的结果分配给数组。

此外,正则表达式应为/data-duration="[^"]*?"/g以匹配data-duration属性的值,该值用引号括起来。

由于只有一个具有相同名称的有效的属性,你可以安全地从正则表达式中删除g标志。

+0

这一切看起来非常好,听起来就像它必须工作,但这个'$ scope.iframes.duration.concat($ scope.iframes.src [I] .match (/ data-duration =“[^] *?”/ g));'不行? – SjaakvBrabant

+1

@Goldenowner要更新数组,您需要分配结果。防爆。 '$ scope.iframes.duration = $ scope.duration.concat(...' – Tushar

+0

你是对的,非常感谢! – SjaakvBrabant

2

你可以使用CONCAT,而不是推来连接与原来的一个数组。

+0

谢谢!我从来没有听说过的功能,但它的作品完美:) – SjaakvBrabant