js题目练习

7.23


1,计算给定数组arr中所有元素的总和,数组中的元素均为Number 类型。例如:[1,2,3,4]--->10


注意一点是$,而不是&,

2.找出元素在给定数组arr中的位置,如果存在返回数组位置,否则返回-1.例如:[1,2,3,4]输入3-->2


还是用上面创建的那个数组,这里是数组名.indexOf(数组元素);的用法


3.移除数组arr中所有与输入元素相同的的数值,直接修改arr,结果返回新数组。例如:[1,2,3,4,2]输入2-->[1,3,4]


可以看见3和7被删除了,数组arr变了

4.移除数组arr中所有与输入元素相同的的数值,直接修改arr,结果返回新数组。例如:[1,2,3,4,2]输入2-->[1,3,4]


直接对创建的这个新数组操作,方法如上arr_new.splice()







7.24


1.在数组arr末尾添加元素,不要直接修改数组,返回新的数组。例如:[1,2,3,4]输入10-->[1,2,3,4,10]


arr.push()的运用

2.删除数组arr最后一个元素,不要直接修改数组arr,结果返回新的数组。例如:[1,2,3,4]-->[1,2,3]


arr.pop()的运用

3.在数组arr开头添加新元素,不要直接修改数组,结果返回新数组,例如:[1,2,3,4],输出10-->[10,1,2,3,4]


arr1.splice()的运用

还有arr.unshift();方法:

删除第一个元素


4.在数组arr开头删除新元素,不要直接修改数组,结果返回新数组,例如:[10,1,2,3,4],输出10-->[1,2,3,4]


还是arr.splice()的运用,arr.splice()可删可添

还有unshift()方法:

unshift(),添加第一个元素






7.25


1.构造一个函数`func(arr,x)`,**使用`sort()`函数**将给定的数组`arr`**随机排序**,

  并打印出该数组,以及变量`x`在该数组中的下标

- 例如: func([1,2,3,4,5,6],5)

  - 输出:

arr : [1,4,5,3,2,6]    (随机排序)

index :2

方法一:

这个方法有错误,下标不对,目前还没有找出来为什么

方法二:

优化后的,直接用数组.length,和数组[i]

方法三:

更优化的,不用for循环,用arr.indexOf(),查找数组元素,有则返回数组元素,没则返回-1

2.构造一个函数`func(arr)`,`str1`与`str2`都是字符串,

  **使用forEach()函数**比较两个字符串,如果`str1`包含了`str2`中的所有字符,

  函数返回`true`,否则返回`false`

  - 例如:  

  func(["hello","hey"])//false,没有y

   func(["Mary","Army"])//true


3.构造一个函数`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]]


arr.slice(),sort()按顺序排序

(1)数组.slice(参数1,参数2)功能:从参数1开始分割数组,到参数2结束;

(2)数组.sort(参数),参数为函数名,若没有参数,则按字母顺序排序,此时这个需要按数字大小排序,若无参数,则乱排;

函数:sortNumber()返回两个数相减的值;

其中,哎呀,记住这个结论好了:

从小到大排:参数1-参数2(a-b);

从大到小排:参数2-参数1(b-a)。


这个是从大到小排

4.构造一个函数`func(str1,str2)`,**使用`substr()`方法**,判断`str1`是否以

  `str2`结尾,返回`true`或`false`

  - 例如:

func('an apple','apple')//true

func('not an apple','le')//true


字符串.substr()

(1)字符串.substr(参数1,参数2)和数组.slice(参数1,参数2)功能一样,只不过一个分割字符串一个分割数组;

(2)字符串.length和数组.length,返回的都是数组元素数量和字符串实际个数,而不是他们的下标长度,例如:


返回的都是实际长度

(3)定义一个变量,就像上面的: var c=str1.substr((a-b));console.log(c);

不能为了把它变成字符串而这样定义: var c=‘str1.substr((a-b));console.log(c)’;否则,他将返回c的值为:

 str1.substr((a-b)),与本意不同

5.构造一个函数`func(str)`,将该字符串倒置并返回

  - 例如:

func('asdfgh')//hgfdsa

func('apple')//elppa

方法一:

注意字符串.length,还有字符串.charAt();

(1).字符串长度也是可以用字符串名.length表示滴;

(2).字符串名.charAt(index),index表示下标,(就是按照下标号来访问字符串内容),返回的是字符串值。

(ps:index:下标,索引);哈哈哈,学个单词;

方法二:(将字符串转化为数组操作)

用到字符串.split(),数组.reverse(),数组.join();

(1).字符串.split(‘参数1’,参数2);作用:将字符串变为数组。参数1:以引号里面的作为分割点,参数2:分割几个点;

(2).数组.reverse();将数组倒置;

(3).数组.join(‘参数’);将数组变为字符串,并以参数(任意符号)连接起来。

字符串.split()和数组.join()刚好互相相反使用;






7.26


1.打平嵌套数组 [1, [2, [3], 4], 5] => [1, 2, 3, 4, 5]

方法一:

第一步:先转换为字符串,(去掉中间的[和]);

第二步:再用.split()方法转换为字符串数组;

第三步:再用parsetInt(),将数组元素一个个转化为数字。

数组.toString(),字符串.split(),parsetInt();

方法二:


split(/正则表达式/),toString(),parsetInt();



正则表达式:/内容/

\b:数字

\w:字母 

\s:空格或tab键 

+:至少一个字符

?:0个或1个字符

*:任意个字符(包括0)

.:任意字符

{n}:n个字符 

 {n-m}:n到m个字符

[ ]:表示范围

^/ /:表示以什么开头

/ /$:表示以什么结尾

a|b:表示匹配a或b




2.用js实现随机选取10~100之间的10个数字,存入一个数组,并排序。


产生随机数Math.floor(Math.random()*90)+10

(1)Math.floor(Math.random()*90)+10:产生0-1得数,给他乘以你要得数范围的差(比如在这里100-10),再加上开始的书数(比如这里的10);

(2)问题,怎样用循环保存下来,目前没有弄出来,不太对劲(-、_   -、)


3 .寻找两个有序数组最小相同元素

a = [1, 2, 5, 9, 10]

b = [3, 4, 6, 9, 10]


两层循环思想

设置变量k的原因是只输出最小的数

4.选择题

1>

(true+false) >2+true;

执行代码该代码的结果是

A.True    B.false    C.TypeError    D.NaN

这行代码相当于:(true+false) >(2+true);,也就是说+优先于>,即使后面不加括号也是(1)>(3)这样算的滴

2>执行如下代码

function aaa(){

return

    {

test:1;

    };

}

alert(typeof aaa());

A.Function          B.object      C.number        D.undefined

这个代码相当于没有中间的{text:1;},因为return后面会自动加分号,结束,{}里面永远不执行,返回空时,函数为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

编译器会率先读取函数声明,并使其在执行代码之前可以访问,假若,下面没有函数foo,则这里返回undefined,因为直接return,编译器读不到下面的foo=10和,var foo= ‘11‘



字符串方法

1.


字符方法

2.

关于字符串操作方法

3.字符串位置方法


利用indexOf方法,循环遍历整个字符串

indexOf(参1,参2):参1是元素,参2是从什么地方开始遍历。从前往后;

lastindexOf:从后往前。


4.

trim()删除字符串前后空格

5.大小写转换:

toLocaleUpperCase()

ttoLocaleLowerCase()

这两个针对地区

toUpperCase()

toLowerCase()

6。字符串模式匹配


match()和replace()

replace第二个参数还可以是函数----?

还有splice()方法。

7.localeCompare(),比较字符串


括号里面的大返回-1

8.将编码转化为字符串,与charCodeAt()想反


String.fromCharCode()

9.HTML方法------尽量不使用。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容