我正在学习Javascript,这里的for循环看起来与C中的完全相同。我想知道的是,是否应将字符串的长度分配给循环中的另一个变量。我通常在C中遍历char数组时执行此操作,因此循环不必每次迭代都调用strlen
:
for (int i = 0, n = strlen(word); i < n; i++)
{
// code block
}
我从以下教程中看到的是,在Java语言中只编写了一个for循环,而没有分配变量的数组长度:
for (let i = 0; i < arr.length; i++) {
// code block
}
将数组的长度分配给Javascript中的变量是否有好处?
答案 0 :(得分:7)
没有好处,不像在C语言中那样重要,因为arr.length
是静态属性,也就是说,它不被计算,与strlen
不同,rownames = c("dummy", "dummy", "dummy", "dummy", "dummy", "dummy","dummy", "dummy", "dummy", "dummy")
corr_truth = c(-0.39, -0.13, 0.28, -0.49, -0.14, 0.52, 0.43, 0.22, -0.29, -0.02)
corr_pred= c(-0.41, 0.01, 0.36, -0.38, -0.28, 0.44, 0.26, 0.24, -0.38, -0.23)
corr_complete = data.frame(rownames, corr_truth,corr_pred)
plot_corr_complete = ggplot(data = corr_complete, aes(corr_truth, corr_pred, label = rownames)) + geom_point() +
xlim(-0.5,0.7) +
ylim(-0.5,0.7) +
geom_text_repel() +
geom_smooth(method = "lm", se = FALSE, color = "black")
plot_corr_complete
会在每次调用时计算长度。
编辑:see for yourself,这是一个有争议的问题,但似乎直接访问该属性是最快的