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方法------尽量不使用。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,039评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,223评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,916评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,009评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,030评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,011评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,934评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,754评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,202评论 1 309
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,433评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,590评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,321评论 5 342
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,917评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,568评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,738评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,583评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,482评论 2 352

推荐阅读更多精彩内容