Мне нравится писать простые объяснения для толстых людей, потому что я толстый, поэтому здесь идет ...
У нас есть 5 разделов на странице, каждый с идентификатором ... div1, div2, div3, div4, div5
jQuery может это сделать ...
for (var i=1; i<=5; i++) {
$("#div" + i).click ( function() { alert ($(this).index()) } )
}
Но действительно решая проблему (и медленно ее создавая) ...
for (var i=1; i<=5; i++) {
$("#div" + i).click (
// TODO: Write function to handle click event
)
}
for (var i=1; i<=5; i++) {
$("#div" + i).click (
function(num) {
// A functions variable values are set WHEN THE FUNCTION IS CALLED!
// PLEASE UNDERSTAND THIS AND YOU ARE HOME AND DRY (took me 2 years)!
// Now the click event is expecting a function as a handler so return it
return function() { alert (num) }
}(i) // We call the function here, passing in i
)
}
Если вы не можете опустить голову, тогда это должно быть легче понять и иметь тот же эффект ...
for (var i=1; i<=5; i++) {
function clickHandler(num) {
$("#div" + i).click (
function() { alert (num) }
)
}
clickHandler(i);
}
Это должно быть понятным, если вы помните, что значения переменных функций задаются при вызове функции (но это использует ту же мысль как и раньше)
A = np.array([[1,2,3],
[2,3,4],
[3,4,5],
[4,5,6],
[5,6,7],
[6,7,8],
[7,8,9],
[8,9,10]])
v = np.array([1,1,1])
# Compute the length (norm) of the distance between the vectors
distance = np.linalg.norm(A - v, axis = 1)
print(distance)
[ 2.23606798 3.74165739 5.38516481 7.07106781 8.77496439 10.48808848
12.20655562 13.92838828]