2016-01-22 59 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