开发技巧:创建指定模式的序列
2019-02-15 本文已影响0人
iqxtreme
应用背景
- 给定模式P=[1, 3, 1, 3, 3, 1, 3, 3, 3],注意到模式中仅有[1、3]两种元素;
- 给定可选元素=['A', 'B', 'C', 'D', 'E'];
- 随机抽取可选元素(假设抽中['B', 'E'])构建长度为9、6、11的符合模式P的序列,为:
9: ['B', 'E', 'B', 'E', 'E', 'B', 'E', 'E', 'E']
6: ['B', 'E', 'B', 'E', 'E', 'B']
11:['B', 'E', 'B', 'E', 'E', 'B', 'E', 'E', 'E', 'B', 'E', 'B']
使用方法
var Utils = require('geoUtils');
var P = [1, 3, 1, 3, 3, 1, 3, 3, 3];
var itemsFrom = ['A', 'B', 'C', 'D', 'E'];
var seq9 = Utils.array.buildSequence(itemsFrom, P, 9);
var seq6 = Utils.array.buildSequence(itemsFrom, P, 6);
var seq11 = Utils.array.buildSequence(itemsFrom, P, 11);
// 结果
// seq9 = ['B', 'E', 'B', 'E', 'E', 'B', 'E', 'E', 'E']
// seq6 = ['B', 'E', 'B', 'E', 'E', 'B']
// seq11 = ['B', 'E', 'B', 'E', 'E', 'B', 'E', 'E', 'E', 'B', 'E', 'B']
方法说明
源码位于geoArrayUtils.js