输入一个正整数数组,把数组里的所有数字拼接
起来排成一个数,输出 能拼接出的 所有数字中
最小的一个比如:[3,32,321];
let a=[3,32,321];//原数组
let b1=[];//存拼接结果集
let a1=0;//拼接结果
let b2=0;//数组下标工具
let [a2,a3,a4]=[0,0,0];
for(let i=0;i<1000;i++){
a2=parseInt(Math.random()*3);
a3=parseInt(Math.random()*3);
a4=parseInt(Math.random()*3);
if(a2!==a3&&a3!==a4&&a2!==a4){
a1=parseInt(`${a[a2]}${a[a3]}${a[a4]}`);
//动态拼接结果
}
if(a1!==0){
b1[b2]=a1;
b2++;
}
}
console.log(b1);//写一个数组存拼接结果,但是重复的太多
b2=0;
let b3=[];//重新写一个数组存不重复的数据
for(let i=0;i<b1.length;i++){
if (b3.indexOf(b1[i]) == -1){
b3.push(b1[i]);
}
}//b3.indexOf(b1[i]) == -1判断数组中是否存在元素
console.log(b3);
alert(Math.min.apply(Math,b3));
//输出数组最小值Math.min.apply(Math,arr);函数
上面是固定数组的
接下来是魔改动态的
let [a2,a3,a4]=[parseInt(Math.random()*300),
parseInt(Math.random()*3000),parseInt(Math.random()*3000)];
let a=[a2,a3,a4];//随机数组
console.log(a);
let b1=[];
let a1=0;
let b2=0;
for(let i=0;i<1000;i++){
a2=parseInt(Math.random()*3);
a3=parseInt(Math.random()*3);
a4=parseInt(Math.random()*3);
if(a2!==a3&&a3!==a4&&a2!==a4){
a1=parseInt(`${a[a2]}${a[a3]}${a[a4]}`);
}
if(a1!==0){
b1[b2]=a1;
b2++;
}
}
console.log(b1);//写一个数组存拼接结果,但是重复的太多
let b3=[];//重新写一个数组存不重复的数据
for(let i=0;i<b1.length;i++){
if (b3.indexOf(b1[i]) == -1){
b3.push(b1[i]);
}
}
console.log(b3);
alert(Math.min.apply(Math,b3));
// //输出数组最小值Math.min.apply(Math,arr);函数
注释主要在上面那个里面
菜鸡一个
各位大佬不喜勿喷。。。。。。
继续魔改。。。。
let len=prompt("数组要多长?")
let b=0;
let a=[];
for(let i=0;i<len;i++){
b=parseInt(Math.random()*1000);
a[i]=b;
}
// let [a2,a3,a4]=[parseInt(Math.random()*300),
// parseInt(Math.random()*3000),parseInt(Math.random()*3000)];
// let a=[a2,a3,a4];
console.log(a);
let b1=[];
let a1=0;
let b2=0;
let arr=[];
for(let i=0;i<len;i++){
arr[i]=i;
}
for(let k=0;k<1000;k++){
function shuffle(arr) {
var length = arr.length,
randomIndex,
temp;
while (length) {
randomIndex = Math.floor(Math.random() * (length--));
temp = arr[randomIndex];
arr[randomIndex] = arr[length];
arr[length] = temp
}
return arr;
}
console.log(shuffle(arr))
b="";
for(let i=0;i<1;i++){
for(let j=0;j<a.length;j++){
b+=a[arr[j]];
}
a1=parseInt(b);
b1[b2]=a1;
b2++;
}
}
console.log(b1);//写一个数组存拼接结果,但是重复的太多
let b3=[];//重新写一个数组存不重复的数据
for(let i=0;i<b1.length;i++){
if (b3.indexOf(b1[i]) == -1){
b3.push(b1[i]);
}
}
console.log(b3);
alert(Math.min.apply(Math,b3));
//输出数组最小值Math.min.apply(Math,arr);函数
借鉴了大佬的打乱数组排序
做下标
https://blog.csdn.net/weixin_33949359/article/details/92061701
再次感谢。。。