复杂建筑/排序阵列
Complex Building/Sorting Arrays
我有初学者的技能,希望有人能帮助我使用JavaScript ECMA-262中的复杂脚本(尽可能基本的JS脚本,因为我使用的程序只有ECMA-262的旧版本。因此,在该程序的语言引用中找不到一些数组函数,如"splice"甚至"concat"。但是基本的JS还可以)。
我试图从两个单独的子阵列(子阵列a=1,2,3和子阵列B=4,5,6)中创建一个总共6个数字的阵列,交替地将每个子阵列中的一个数字(从每个子阵列随机选择)放入最后的6项阵列中。此外,没有重复。
例如,3,6,1,4,2,5。
我试过在线搜索,这个板,从2个子数组中尝试zipper方法,%来挑选奇数/偶数,等等。到目前为止,一切都不起作用。但至少我已经获得了更多的知识,这让我能够以一种可能有助于创建更具体解决方案的方式提出这个问题。我会对此进行硬编码,但我认为可能的变体/案例数量可能相当大?
我希望有人能在基本JS中提出一个脚本/函数,它可以(1)设置每个随机子数组,然后(2)创建最后的6项数组。
谨致问候,
如果你被限制在现代JS API的一个子集,我可能会采取先合并两个数组(迭代),然后应用随机排序的方法
var arr1 = [1,2,3], arr2 = [4,5,6];
for (var i=0, len = arr2.length; i<len; i++) arr1[arr1.length] = arr2[i];
arr1.sort(function() { return 0.5 - Math.random(); });
arr1
现在是一个按随机顺序排列的6个数字的数组,并没有重复。
[编辑]-根据下面的讨论,试试这个。
//prep - two arrays, randomised order
var arr1 = [1,2,3].sort(r_sort),
arr2 = [4,5,6].sort(r_sort),
final_arr = [],
smallest_array = arr1.length < arr2.length ? arr1 : arr2;
function r_sort() { return 0.5 - Math.random(); }
//build final array - intersecting the two arrays
for (var i=0, len = smallest_array.length; i<len; i++) {
final_arr[final_arr.length] = smallest_array[i];
if (smallest_array == arr1 && arr2[i])
final_arr[final_arr.length] = arr2[i];
else if (smallest_array == arr2 && arr1[i])
final_arr[final_arr.length] = arr1[i];
}
//result
alert(final_arr);
相关文章:
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- 使用promise和mongoose对文档进行排序
- Selectize.js:如何对整数值的选项进行排序
- Javascript排序的图像弹出窗口..可以't单独弹出
- 如何通过引用var Using DataTables来进行分页或排序
- 为什么HTML5拖放的目标是孩子?(可排序列表)
- AngularJs对所有页面中的所有记录进行排序
- 当属性不一致时,如何根据属性对JS对象列表进行排序
- 按从高到低对多个int变量进行排序
- jQuery UI可排序-多连接列表拖动
- Javascript排序字符串或数字
- 2个backbone.js集合,具有相同的模型,但排序顺序不同
- sort而不是排序javascript
- 如何根据另一个节点中的数据对 Firebase 阵列进行排序
- 复杂建筑/排序阵列
- 对二级阵列中的对象进行排序
- 按多个特性对阵列中的对象进行排序
- 在Javascript中,如何根据点阵列到参考点的距离对其进行排序
- 排序阵列超链接
- 烬CLI阵列控制器不排序通过每个循环