1.打平嵌套数组 [1, [2, [3], 4], 5] => [1, 2, 3, 4, 5]
let arr = [1,[2,[3],4],5];
var brr=arr.toString().split(",");//先转换成字符串再转换成字符数组
for(var i=0;i<brr.length;i++){
brr[i]=parseInt(brr[i])
}
console.log(brr);
2.用js实现随机选取10~100之间的10个数字,存入一个数组,并排序。
let arr = [];
function Random_sort() {
for(let i = 0;i<10;i++)
{
let per = Math.floor(Math.random()*90+10);
arr.push(per);
}
return arr.sort();
}
console.log(Random_sort());
3 .寻找两个有序数组最小相同元素
a = [1, 2, 5, 9, 10]
b = [3, 4, 6, 9, 10]
let arr = [4, 3, 5, 9, 10];
let brr = [3, 4, 5, 9, 10];
let crr = [];
function min_same(arr,brr) {
for(let i = 0;i<arr.length;i++){
for(let j= 0;j<brr.length;j++){
if(arr[i] === brr[j]){
crr.push(arr[i]);
}
}
}
return Math.min.apply(null,crr);//找出最小值
}
console.log(min_same(arr,brr));
方法: alert(Math.max.apply(null, arr));//最大值
alert(Math.min.apply(null, arr));//最小值
4.选择题
1.(true + false) > 2 + true;
执行代码该代码的结果是
A.True B.false C.TypeError D.NaN
2.执行如下代码:
function aaa(){
return
{
test:1;
};
}
alert(typeof aaa());
A.Function B.object C.number D.undefined
因为return 后面加换行,js中会自动在后面添加一个分号,所以返回值为undefined。
3.执行如下代码:
function bar(){
return foo;
foo=10;
function foo(){}
var foo="11";
}
alert(typeof bar());
A.number B.function C.undefined D.string E.Error
函数声明会被提前,所以先执行 function foo(){},再返回,结果就是function。
★打平嵌套数组小方法
1.flatten()
var flatten = function(input, shallow, strict, startIndex) {
// ...
};
flatten()有四个参数。
input
即为需要展开的数组;
shallow
是个布尔值,如果为 false,则表示数组是深度展开,如果为 true 则表示只展开一层;
startIndex
表示数组展开的起始位置;
strict
也是个布尔值,当 shallow 为 true 并且 strict 也为 true 时,能过滤 input 参数元素中的非数组元素。如果 strict 为 true 并且 shallow 为 false,那么调用 flatten 方法的结果只能是 []。(有点难哇)
var res = flatten([5, 6, [1, 2], [3, 4]], true, true);
console.log(res); // => [1, 2, 3, 4]
深度展开,过滤掉非数组元素,则5,6被过滤掉了。
2.数据类型转换
var add=arr.join(",").split(",")// 或者:var add=arr.toString().split(",")
先转换成字符串再转换成字符数组
for(var i=0;i<add.length;i++){
add[i]=parseInt(add[i])
}
console.log(add);
3.递归
var arr2=[];
function result(arr1,arr2){
for(var i=0;i<arr1.length;i++){
if(typeof arr1[i]==="number"){
arr2.push(arr1[i]);
}
else{
result(arr1[i],arr2);
}
}
}
result(arr,arr2);
console.log(arr2);
网友评论