深入理解array.map:求解JS中对应代码的作用与逻辑
JS代码功能解释
这段代码的作用是将由0、1组成的数组中的每一位二进制位取反,最终拼接为一个完整的二进制字符串,要求执行代码前num变量的值为仅包含0和1的数组。
代码逐段拆解
num.map(x => { return (x == 0) ? 1: 0; })map()是JS数组自带的迭代方法,会遍历数组的每一个元素,将每个元素传入回调函数处理后,返回一个全新的数组,不会修改原数组- 回调函数里的
(x == 0) ? 1: 0是三目运算符,逻辑等价于:如果当前遍历到的元素x等于0,就返回1,否则返回0,实现的是单比特位的取反效果 - 举个实际运行示例:如果原
num是[1,0,1,0,0],执行完map方法后会得到新数组[0,1,0,1,1]
.join("")join()方法用于将数组的所有元素拼接为一个字符串,传入的空字符串参数""代表元素拼接时不需要添加任何分隔符- 承接上面的示例,
[0,1,0,1,1]执行join("")后会得到字符串结果"01011"
- 最后将处理完成的结果重新赋值给
num变量,覆盖原来的数组值
运行前置要求与边界说明
- 只有当初始
num是数组类型时,这段代码才能正常运行,如果num是数值、普通字符串等非数组类型,调用map()方法会直接抛出类型错误 - 如果原数组中存在除0、1之外的其他元素,所有非0的值(包括2、字符串、
null、undefined等)都会被判定为不等于0,最终转换为0
内容的提问来源于stack exchange,提问作者NewbieProgrammer222
相关产品推荐
相关产品推荐

