特定の関数でさまざまな配列を使用する必要がありますが、非常に非効率的な方法でそれを実行していると思わずにはいられません。
function GetTimeLeft(){
var TimeUnformatted = document.querySelectorAll('[id="SomeIdName"]')[0].innerText.match(/\d{1,}d\s\d{1,}h/ig);
var i;
if (TimeUnformatted){
var Daysunformatted = [];
var Hoursunformatted = [];
var DaysFormatted = [];
var HoursFormatted = [];
var DaysToSeconds = [];
var HoursToSeconds = [];
var TimeInSeconds = [];
for (i=0;i<TimeUnformatted.length;i++){
Daysunformatted[i] = TimeUnformatted[i].match(/\d{1,}d/)[0];
Hoursunformatted[i] = TimeUnformatted[i].match(/\d{1,}h/)[0];
if (Daysunformatted[i]) DaysFormatted[i] = Number(Daysunformatted[i].match(/\d{1,}/)[0]);
if (Hoursunformatted[i]) HoursFormatted[i] = Number(Hoursunformatted[i].match(/\d{1,}/)[0]);
if (DaysFormatted[i]) DaysToSeconds[i] = DaysFormatted[i]*24*60*60;
if (HoursFormatted[i]) HoursToSeconds[i] = HoursFormatted[i]*60*60;
if (DaysToSeconds[i] && HoursToSeconds[i]) TimeInSeconds[i] = DaysToSeconds[i] + HoursToSeconds[i];
}
return TimeInSeconds;//an Array.
} else {
return [0];
}
}
編集:明確にするために、私は自分自身を非常に貧弱に表現したので。最初のvarステートメントを使用せずに「外出先での割り当て」を試しましたが、JavaScriptが叫び、「[」を予期していなかったと言っています。
function GetTimeLeft(){
var TimeUnformatted = document.querySelectorAll('[id="SomeIdName"]')[0].innerText.match(/\d{1,}d\s\d{1,}h/ig);
var i;
if (TimeUnformatted){
for (i=0;i<TimeUnformatted.length;i++){
var Daysunformatted[i] = TimeUnformatted[i].match(/\d{1,}d/)[0];
var Hoursunformatted[i] = TimeUnformatted[i].match(/\d{1,}h/)[0];
if (Daysunformatted[i]) var DaysFormatted[i] = Number(Daysunformatted[i].match(/\d{1,}/)[0]);
if (Hoursunformatted[i]) var HoursFormatted[i] = Number(Hoursunformatted[i].match(/\d{1,}/)[0]);
if (DaysFormatted[i]) var DaysToSeconds[i] = DaysFormatted[i]*24*60*60;
if (HoursFormatted[i]) var HoursToSeconds[i] = HoursFormatted[i]*60*60;
if (DaysToSeconds[i] && HoursToSeconds[i]) var TimeInSeconds[i] = DaysToSeconds[i] + HoursToSeconds[i];
}
return TimeInSeconds;//an Array.
} else {
return [0];
}
複数の割り当てを行うことができることは知っていますが、それでも、自分がやりたいことを行うためのより良い方法はありませんか?