带有拼接的javascript中的映射函数
Map function in javascript with splice
谁能解释一下当我们传递2,0,1
时,这个函数是如何返回[0,1]
function processData(input) {
var parse_fun = function (s) { return parseInt(s, 10); };
var lines = input.split(''n');
console.log(lines)
var T = parse_fun(lines.shift());
console.log(T)
var data = lines.splice(0, T).map(parse_fun);
console.log(data);
}
混淆这条线的部分。
var data = lines.splice(0, T).map(parse_fun);
console.log(data);
lines.splice(0,T)
还我[]
那[].map(parse_fun)
怎么会回来[0,1]
假设输入"2'n0'n1"
考虑一下lines.shift()
做什么,
- 它从
lines
中删除第一项,并通过1
减少所有其他指示 - 它返回现在删除的第一项
lines
因此,在您的情况下,2
被返回,lines
变得["0", "1"]
接下来,考虑lines.splice(0, 2)
的作用
- 它从
lines
中删除2
项,从索引0
开始 - 它返回已删除项的数组
因此,在您的情况下,["0", "1"]
被返回,lines
变得[]
最后,您将数组["0", "1"]
映射到以数字为基数10
,并得到[0, 1]
lines.splice(0,T)
还给我[]
不,它没有。它将产生["0", "1"]
.但是splice
也会从lines
数组中删除这些项目,这意味着如果你调用它两次(例如,一次用于映射,一次用于调试),第二次尝试将返回空数组。您应该考虑改用slice
。
相关文章:
- 从函数JavaScript返回不可变数组/对象
- 将对象传递给函数.JavaScript
- 如何定义const函数javascript(语法糖)
- 新的日期函数javascript
- TypeError:this.getAttribute不是一个函数-javascript
- 如何运行对象映射函数
- 角度和内置的javascript映射函数
- 将字符串映射到javascript中的函数
- 接受多个数组作为参数的javascript映射函数
- 如何使用数组和映射函数构建 JavaScript 对象
- 任何转换对象*值*的Javascript或Coffeescript“映射”函数
- JavaScript 数组映射函数不会更改字符串中的元素
- 带有拼接的javascript中的映射函数
- 映射API Javascript函数调用错误
- 数组映射函数javascript不工作
- 在Javascript中通过映射函数传入一个键
- 使用函数式编程将数据从多个对象数组映射到Javascript中的新对象
- JavaScript数组映射函数如何确定当前项的长度和索引
- 函数JavaScript映射区域
- JSON Javascript - 属性映射 - 函数引用