Получить имя файла в URL-адресе [дубликат]

Функции JavaScript «закрывают» область, к которой они имеют доступ при объявлении, и сохраняют доступ к этой области, даже если переменные в этой области меняются.

var funcs = []

for (var i = 0; i < 3; i += 1) {
  funcs[i] = function () {
    console.log(i)
  }
}

for (var k = 0; k < 3; k += 1) {
  funcs[k]()
}

Каждая функция в массиве выше закрывается по глобальной области (глобальная, просто потому, что это область видимости, в которой они объявлены).

Позже эти функции вызывают наибольшую регистрацию текущее значение i в глобальной области. Это волшебство и разочарование закрытия.

«Функции JavaScript закрываются по области, в которой они объявлены, и сохраняют доступ к этой области, даже если переменные значения внутри этой области изменяются».

Использование let вместо var решает это, создавая новую область каждый раз, когда цикл for запускается, создавая выделенную область для каждой функции для закрытия. Различные другие методы делают то же самое с дополнительными функциями.

var funcs = []

for (let i = 0; i < 3; i += 1) {
  funcs[i] = function () {
    console.log(i)
  }
}

for (var k = 0; k < 3; k += 1) {
  funcs[k]()
}

(let делает переменные, которые ограничены областью, а не областью действия функции. Блоки обозначаются фигурными фигурными скобками, но в случае цикла for переменная инициализации i в нашем случае считается объявленной в фигурных скобках.)

8
задан Max Williams 23 May 2016 в 11:40
поделиться

2 ответа

Изменить: это проще:

=REGEXEXTRACT(A1,"[^/]+$")


Вы можете использовать эту формулу:

=REGEXEXTRACT(A1,"(?:.*/)(.*)$")

А также возможно используйте его как ArrayFormula:

=ARRAYFORMULA(REGEXEXTRACT(A1:A3,"(?:.*/)(.*)$"))

Вот еще одна информация:


Эта формула будет делать то же самое:

=INDEX(SPLIT(A1,"/"),LEN(A1)-len(SUBSTITUTE(A1,"/","")))

Но он принимает A1 три раза, что не является prefferable.

16
ответ дан Max Makhrov 5 September 2018 в 07:25
поделиться

Также возможно, возможно, лучше всего на копии, с помощью Find:

.+/ 

(Replace with blank) и Search using regular expressions отмечено галочкой.

1
ответ дан pnuts 5 September 2018 в 07:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: