构造一个函数 func(arr,x), 使用 sort() 函数将给定的数组 arr 随机排序,
并打印出该数组, 以及变量 x 在该数组中的下标
例如: func([1,2,3,4,5,6],5)
输出:
- arr : [1,4,5,3,2,6] (随机排序)
- index : 2
正解吗??NO
- function func(arr,x){
- console.log(arr.sort());
- console.log(arr.indexOf(x));
- }
- func([1,2,3,4,5,6,7,8,9,10],5);
这个函数只是简单的采用 arr.sort() 方法来实现的, 但是如题所示随机数组. 根据 arr.sort() 方法, 我们可以写一个随机函数, 引入到该方法里面来实现随机函数
- // 随机函数, 随机产生一个数, 如果数大于 0.5,a 在 b 前面, 否则 a 在 b 后面
- function randomSort(a, b) {
- return Math.random()> 0.5 ? -1 : 1;
- }
- function func(arr,x){
- console.log('arr:'+arr.sort(randomSort));
- for(var i=0;i<arr.length;i++){
- if(arr[i]==x){
- console.log("index:"+ i);
- }
- }
- console.log(arr.sort(randomSort));
- }
- func([1,2,3,4,5,6],5);
更简单的做法 (只是代码更少而已)
- function randomSort(a, b) {
- return Math.random()> 0.5 ? -1 : 1;
- }
- function func(arr,x){
- console.log('arr:'+arr.sort(randomSort));
- console.log('index:'+arr.indexOf(x));
- }
- func([1,2,3,4,5,6],5);
构造一个函数 func(arr),str1 与 str2 都是字符串,
使用 forEach() 函数比较两 个字符串, 如果 str1 包含了 str2 中的所有字符,
函数返回 true, 否则返回 false
例如:
- func(["hello", "hey"]) //false, 没有 y
- func(["Mary", "Army"]) //true
- function func(arr){
- // 所有字符不分大小写
- var arr1=arr[0].toLowerCase().split('');
- var arr2=arr[1].toLowerCase().split('');
- var flag=true;
- arr2.forEach(element => {
- // 根据数组的 indexOf() 方法的特性
- if(arr1.indexOf(element)==-1){
- flag=false;
- }
- });
- return flag;
- }
- func(["hello", "hey"]) //false, 没有 y
- func(["Mary", "Army"]) //true
构造一个函数 func(arr,num), 使用 sort(),slice(),push(), 将 arr
分成 num 大小的数组, 将每一个小数组升序排序后放入同一个数组返回
例如:
func([1,5,4,2,3,8,7],2)
输出:
[[1,5],[2,4],[3,8],[7]]
例如:
func([1,5,4,2,3,8,7],3)
输出:
- [[1,4,5],[2,3,8],[7]]
- function func(arr,num){
- var b=[];// 定义空数组存放
- for(var i=0;i<arr.length;){
- b.push(arr.slice(i,i+num).sort());
- i+=num;// 每隔 num 个
- }
- return b;
- }
- func([1,5,4,2,3,8,7],3);// [[1,4,5],[2,3,8],[7]]
构造一个函数 func(str1,str2), 使用 substr() 方法, 判断 str1 是否以
str2 结尾, 返回 true 或 false
例如:
- func('an apple','apple') //true
- func('not an apple','le') //true
- function func(str1,str2){
- // 获取两个字符串的长度
- var a=str1.length;
- var b=str2.length;
- if(str1.substr(a-b,b)==str2){
- return true;
- }
- else{
- return false;
- }
- }
- func('an apple','apple') //true
构造一个函数 func(str), 将该字符串倒置并返回
例如:
- func('asdfgh') //hgfdsa
- func('apple') //elppa
- function func(str){
- return str.split('').reverse().join('');
- }
- func("hello");//olleh
详情请点击翻转字符串
6. 循环拼接一个指定的字符串 num 次, 如果 num 是一个负数, 则返回一个空字符串.
- function repeat(str, num) {
- // repeat after me
- if(num>0){
- str=str.repeat(num);
- }
- else{
- str="";
- }
- return str;
- }
- repeat("abc", 3);//abcabcabc
来源: http://www.jianshu.com/p/041e93ea2c34