/*
如何不使用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的数组,并且每个元素的值等于它的下标 -- 十种方法实现
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 在对SynthText的gt.mat中的wordBB中的数据进行处理时,我遇到一个问题:确保每一个值都在[0.,1...
- let ar = [Bool](count: 5, repeatedValue: false) let nums ...