【发布时间】:2017-05-14 11:58:08
【问题描述】:
我正在学习 Javascript,我来自 Python 背景。
因此,对我来说,尝试从末尾开始索引 array 是相当直观的,即使用负索引。
从我目前阅读的内容来看,Javascript 不支持它们。
但是,我发现了一些看起来很有趣的东西,但我无法理解其背后的原因。
todos = ['item1', 'item2', 'item3']
function updateTodos(index, new_value) {
todos[index] = new_value
console.log(todos)
}
function deleteTodos(index) {
todos.splice(index)
console.log(todos)
}
deleteTodos(-1)
updateTodos(-1, 'new_item')
deleteTodos(-1)
输出
["item1", "item2"]
["item1", "item2", -1: "new_item"]
["item1", -1: "new_item"]
问:为什么deleteTodos 能够按索引删除正确的,而updateTodos 不能?
问:我如何才能适应 updateTodos 中的这种负索引行为以及一般处理 array 数据结构的任何函数?
据我所知,updateTodos 中的索引会查找 index 变量并更新该索引处的值(如果存在),否则它会创建一个键值对。 splice 方法支持负索引,不是吗?
如果您能澄清我的推理和/或帮助我提供有用的资源以更好地理解这个概念,我将不胜感激。
【问题讨论】:
标签: javascript arrays indexing