Эта функция должна проверять completeSteps и возвращать индекс всех элементов completeSteps, которые не равны true:
Используйте следующий процесс для обратной совместимости:
- множественные замены для вставки строки
null
для значений , преобразованных в пустые строки - один
replace
для удаления true
- другого
replace
собратный вызов заменителя для вставки индексов - еще один
replace
для удаления ведущей запятой - другой
replace
для удаления парных запятых
Например:
function foo(match, offset, fullstring)
{
foo.i = foo.i + 1 || 0;
if (match === "true")
{
return "";
}
else
{
return foo.i;
}
}
function uncompletedSteps(node)
{
return String(node).replace(/^,/ , "null,").replace(/,$/ , ",null").replace(/,,/g , ",null,").replace(/[^,]+/g, foo).replace(/^,/,"").replace(/,,/g,",")
}
var completedSteps = [
null,
true,
false,
true,
null,
false,
true,
null
];
uncompletedSteps(completedSteps); // "0,2,4,5,7"