/*
如何不使用loop循环,创建一个长度为100的数组,并且每个元素的值等于它的下标
*/
var myArray;
myArray = null;
// new Array(100) 生成的是稀疏数组 返回的不是数组,需要 Array.from转换
/*
创建空数组
1.Array.from(new Array(100))
2.Array.from({length:100}
3.Array.apply(null,{length:100}
4.[...Array(100)]
*/
// 1
myArray = Array.from(new Array(100));
myArray = myArray.map(function(item, index) {
return index;
});
// 2
myArray = Array.apply(null, {
length: 100
});
// Object.keys(),该方法返回一个数组传入对象,返回属性名
// r如果传递数组,返回索引(下标)
myArray = Object.keys(myArray);
// 3
// 通过Array Iterator
myArray = Array.from(Array(100).keys());
// 4 其实就是 先去掉 undefined 还是 方法1的思想
myArray = Array(100).fill('naive').map(function(v, i) {
return i;
});
// 5
// new Int8Array(100) 是初始化都为 0 的数组 后面和方法2一样
myArray = Object.keys(new Int8Array(100));
// 上面返回的数组为string,要转成number
myArray = myArray.map(Number);
// 6 赌博法 页面至少要有100个字符
myArray = document.body.innerHTML.substr(0, 100).split('').map(Object.call, Number);
// 7
myArray = ' '.repeat(100).split('').map(Object.call, Number);
// 8 new Array(100).toString() 生成 一串,,,..,, 再分割 成数组
myArray = new Array(100).toString().split(",");
myArray = myArray.map(function(v, i) {
return i;
});
// 9
myArray = [...Array(100).keys()];
// 10 递归
function reduce(prev, curr) {
if (curr >= 100) return prev;
prev.push(curr);
return reduce(prev, curr + 1);
}
myArray = reduce([], 0);
[分析]不用循环生成,创建一个长度为100的数组,并且每个元素的值等于它的下标 -- 十种方法实现
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 在对SynthText的gt.mat中的wordBB中的数据进行处理时,我遇到一个问题:确保每一个值都在[0.,1...
- let ar = [Bool](count: 5, repeatedValue: false) let nums ...