Javascript 生成数例的方法们,填充数组

目前知道的就这几个,以后有好的再补。

填充相同值

Array.from() 可以通过以下方式来创建数组对象:

  • 伪数组对象(拥有一个 length 属性和若干索引属性的任意对象)
  • 可迭代对象(可以获取对象中的元素,如 Map和 Set 等)
var arr = [];
// 向数组里填充
arr  = Array(10).fill(1);
// 将伪数组转为数组,并给每个元素填充1
Array.from({length:10}, ()=>1);

填充序列

var arr = [];
arr.length = 10;

//生成数例:生成重复字符,再切开。生成 0-8
arr = arr.join('x').split('').map((v,k) => k+1);

//生成数例:生成重复字符,再切开 1-10
arr = Array(10).join("x").split('').map((v, k) => k+1);
// Array(11).join("x").split('').map((v, k) => k);// 0 - 9 

//生成数例:生成重复字符,切开。 k+1 数组从 1 开始
arr = "X".repeat(10).split('').map((v,k) => k+1);
// "X".repeat(10).split('').map((v,k) => k);// 0 - 9 

//生成数例:生成对象转数组。 k+1 数组从 1 开始 
arr = Array.from({length:10}, (v, k) => k+1);
// Array.from({length:10}, (v, k) => k);//  0 - 9 

// 用for实现。声明 arr 也包含在内了 //生成数例:无体 (for 不加大括号就一定要分号结束) 
for(var arr=[],i=1; arr.length<10; arr.push(i++));

//另类 for 方法,因为用了 let 所以for外也拿不到它。//生成数例:无体 (for 不加大括号就一定要分号结束) 
for(let arr=[],i=1; arr.length<10; arr.push(i++));
/**
 * 构建数组
 * len      数组长度
 * prefix   前辍
 * suffix   后辍
 */
function buildArr(len, prefix, suffix){
    var _prefix = prefix || "";
    var _suffix = suffix || "";
    return Array.from({length: len}, (v, k) => _prefix+ (k+1) + _suffix );
}

参考资料

JS 生成随机数/随机数组
JavaScript数组随机排序算法收藏
MDN:Array.from()

你可能感兴趣的:(Javascript,javascript)