一道阿里笔试题-javascript
2016-03-18 13:29
519 查看
不使用loop循环,创建一个长度为100的数组,并且每个元素的值等于它的下标?
解法一:递归
(function wallace (i) { return (i < 0) ? [] : wallace(i - 1).concat(i); })(99);
解法二:Array的map方法
Array(100).fill('naive').map(function (v, i) { return i; });
思路分析:
定义和用法
concat() 方法用于连接两个或多个数组。
该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
语法
arrayObject.concat(arrayX,arrayX,......,arrayX)
参数 描述
arrayX 必需。该参数可以是具体的值,也可以是数组对象。可以是任意多个。
返回值
返回一个新的数组。该数组是通过把所有 arrayX 参数添加到 arrayObject 中生成的。如果要进行 concat() 操作的参数是数组,那么添加的是数组中的元素,而不是数组。
实例
例子 1
在本例中,我们将把 concat() 中的参数连接到数组 a 中:
<script type="text/javascript">
var a = [1,2,3];
document.write(a.concat(4,5));
</script>
输出:
1,2,3,4,5
例子 2
在本例中,我们创建了两个数组,然后使用 concat() 把它们连接起来:
<script type="text/javascript">
var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
var arr2 = new Array(3)
arr2[0] = "James"
arr2[1] = "Adrew"
arr2[2] = "Martin"
document.write(arr.concat(arr2))
</script>
输出:
George,John,Thomas,James,Adrew,Martin
例子 3
在本例中,我们创建了三个数组,然后使用 concat() 把它们连接起来:
<script type="text/javascript">
var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
var arr2 = new Array(3)
arr2[0] = "James"
arr2[1] = "Adrew"
arr2[2] = "Martin"
var arr3 = new Array(2)
arr3[0] = "William"
arr3[1] = "Franklin"
document.write(arr.concat(arr2,arr3))
</script>
输出:
George,John,Thomas,James,Adrew,Martin,William,Franklin
解法一:递归
(function wallace (i) { return (i < 0) ? [] : wallace(i - 1).concat(i); })(99);
解法二:Array的map方法
Array(100).fill('naive').map(function (v, i) { return i; });
思路分析:
定义和用法
concat() 方法用于连接两个或多个数组。
该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
语法
arrayObject.concat(arrayX,arrayX,......,arrayX)
参数 描述
arrayX 必需。该参数可以是具体的值,也可以是数组对象。可以是任意多个。
返回值
返回一个新的数组。该数组是通过把所有 arrayX 参数添加到 arrayObject 中生成的。如果要进行 concat() 操作的参数是数组,那么添加的是数组中的元素,而不是数组。
实例
例子 1
在本例中,我们将把 concat() 中的参数连接到数组 a 中:
<script type="text/javascript">
var a = [1,2,3];
document.write(a.concat(4,5));
</script>
输出:
1,2,3,4,5
例子 2
在本例中,我们创建了两个数组,然后使用 concat() 把它们连接起来:
<script type="text/javascript">
var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
var arr2 = new Array(3)
arr2[0] = "James"
arr2[1] = "Adrew"
arr2[2] = "Martin"
document.write(arr.concat(arr2))
</script>
输出:
George,John,Thomas,James,Adrew,Martin
例子 3
在本例中,我们创建了三个数组,然后使用 concat() 把它们连接起来:
<script type="text/javascript">
var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
var arr2 = new Array(3)
arr2[0] = "James"
arr2[1] = "Adrew"
arr2[2] = "Martin"
var arr3 = new Array(2)
arr3[0] = "William"
arr3[1] = "Franklin"
document.write(arr.concat(arr2,arr3))
</script>
输出:
George,John,Thomas,James,Adrew,Martin,William,Franklin
The fill() method fills all the elements of an array from a start index to an end index with a static value. SyntaxEDIT arr.fill(value[, start = 0[, end = this.length]])https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/map#Example:_Mapping_an_array_of_numbers_to_an_array_of_square_roots
callback函数会被自动传入三个参数:数组元素,元素索引,原数组本身。
相关文章推荐
- 深入理解JavaScript系列(5):强大的原型和原型链
- js关闭当前页面 (窗口)的几种方式总结
- Js操作cookie
- 用JS获取Html中所有图片文件流然后替换原有链接
- Javascript 检查字符串是否是数字的几种方法
- 前端工程师面试题JavaScript部分(第五季)
- jstl fmt标签
- Angular.js中的指令——易懂全解析
- .NET后台confirm对话框以及JS调用后台相关方法
- Js操作cookie
- JavaScript数组length的方便与痛
- 关于js跨域请求的问题
- (五)ExtJs进度条的几种实现方式
- JStorm部署安装
- Javascript进阶篇——(DOM—节点---获取浏览器窗口可视区域大小+获取网页尺寸)—笔记整理
- Gson解析第三方提供Json数据(天气预报,新闻等)
- jsp中时间日期算法集合
- c#中using System.Runtime.Serialization.Json;不能引用
- JavaScript之数据类型(转)
- JSP IE异步提交设置断点,有时走,有时不走,ajax缓存问题