加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
s.js 10.03 KB
一键复制 编辑 原始数据 按行查看 历史
韦天翔 提交于 2021-12-08 03:31 . 1
'use strict';
/*
1、题目描述
找出元素 item 在给定数组 arr 中的位置
输出描述:
如果数组中存在 item,则返回元素在数组中的位置,否则返回 -1
示例1
输入
[ 1, 2, 3, 4 ], 3
输出
2
*/
function indexOf(arr, item) {
for (var i = 0; i < arr.length; i++) {
if (arr[i] === item) {
return arr.indexOf(item);
}
}
return -1;
}
console.log('第1题');
console.log(indexOf([1, 2, 3, 4], 3));
/*
2、题目描述
计算给定数组 arr 中所有元素的总和
输入描述:
数组中的元素均为 Number 类型
示例1
输入
[ 1, 2, 3, 4 ]
输出
10
*/
function sum(arr) {
var num = 0;
for (var i = 0; i < arr.length; i++) {
num += arr[i];
}
return num;
}
console.log('第2题');
console.log(sum([1, 2, 3, 4]));
/*
3、题目描述
移除数组 arr 中的所有值与 item 相等的元素。不要直接修改数组 arr,结果返回新的数组
示例1
输入
[1, 2, 3, 4, 2], 2
输出
[1, 3, 4]
*/
function remove(arr, item) {
var result = [];
for (var i = 0; i < arr.length; i++) {
if (arr[i] !== item) {
result.push(arr[i]);
}
}
return result;
}
console.log('第3题');
console.log(remove([1, 2, 3, 4, 2], 2));
/*
4、题目描述
移除数组 arr 中的所有值与 item 相等的元素,直接在给定的 arr 数组上进行操作,并将结果返回
示例1
输入
[1, 2, 2, 3, 4, 2, 2], 2
输出
[1, 3, 4]
*/
function dd(arr,item){
while(arr.indexOf(item)!=-1) {
arr.splice(arr.indexOf(item),1);
}
return arr;
}
console.log('第4题');
console.log(removeWithoutCopy([1, 2, 2, 3, 4, 2, 2], 2));
/*
5、题目描述
在数组 arr 末尾添加元素 item。不要直接修改数组 arr,结果返回新的数组
示例1
输入
[1, 2, 3, 4], 10
输出
[1, 2, 3, 4, 10]
*/
function append(arr, item) {
arr.push(item);
return arr;
}
console.log('第5题');
console.log(append([1, 2, 3, 4], 10));
/*
6、题目描述
删除数组 arr 最后一个元素。不要直接修改数组 arr,结果返回新的数组
示例1
输入
[1, 2, 3, 4]
输出
[1, 2, 3]
*/
function truncate(arr) {
arr.pop();
return arr;
}
console.log('第6题');
console.log(truncate([1, 2, 3, 4]));
/*
7、题目描述
在数组 arr 开头添加元素 item。不要直接修改数组 arr,结果返回新的数组
示例1
输入
[1, 2, 3, 4], 10
输出
[10, 1, 2, 3, 4]
*/
function prepend(arr, item) {
arr.unshift(item);
return arr;
}
console.log('第7题');
console.log(prepend([1, 2, 3, 4], 10));
/*
8、题目描述
删除数组 arr 第一个元素。不要直接修改数组 arr,结果返回新的数组
示例1
输入
[1, 2, 3, 4]
输出
[2, 3, 4]
*/
function curtail(arr) {
arr.shift();
return arr;
}
console.log('第8题');
console.log(curtail([1, 2, 3, 4]));
/*
9、题目描述
合并数组 arr1 和数组 arr2。不要直接修改数组 arr,结果返回新的数组
示例1
输入
[1, 2, 3, 4], ['a', 'b', 'c', 1]
输出
[1, 2, 3, 4, 'a', 'b', 'c', 1]
*/
function concat(arr1, arr2) {
var newArr = arr1.concat(arr2);
return newArr;
}
console.log('第9题');
console.log(concat([1, 2, 3, 4], ['a', 'b', 'c', 1]));
/*
10、题目描述
在数组 arr 的 index 处添加元素 item。不要直接修改数组 arr,结果返回新的数组
示例1
输入
[1, 2, 3, 4], 'z', 2
输出
[1, 2, 'z', 3, 4]
*/
function ddd(arr,item,index) {
var newarr = arr.slice();
newarr.splice(index,0,item)
return newarr;
}
console.log('第10题');
console.log(ddd([1, 2, 3, 4], 'z', 2));
/*
11、题目描述
统计数组 arr 中值等于 item 的元素出现的次数
示例1
输入
[1, 2, 4, 4, 3, 4, 3], 4
输出
3
*/
function count(arr, item) {
var count = 0;
for (var i = 0; i < arr.length; i++) {
if (arr[i] === item) {
count++;
}
}
return count;
}
console.log('第11题');
console.log(count([1, 2, 4, 4, 3, 4, 3], 4));
/*
12、题目描述
找出数组 arr 中重复出现过的元素
示例1
输入
[1, 2, 4, 4, 3, 3, 1, 5, 3]
输出
[1, 3, 4]
*/
function xxx(arr){
var newarr = [];
for (let i = 0; i < arr.length; i++) {
for (let j = 0; j < arr.length; j++) {
if(i!==j){
if(arr[i]===arr[j]){
if(newarr.indexOf(arr[j]) === -1){
newarr.push(arr[i]);
}
}
}
}
}
newarr.sort();
return newarr;
}
console.log('第12题');
console.log(duplicates([1, 2, 4, 4, 3, 3, 1, 5, 3]));
/*
13、题目描述
为数组 arr 中的每个元素求二次方。不要直接修改数组 arr,结果返回新的数组
示例1
输入
[1, 2, 3, 4]
输出
[1, 4, 9, 16]
*/
function square(arr) {
var result = [];
for (var i = 0; i < arr.length; i++) {
result.push(arr[i] * arr[i]);
}
return result;
}
console.log('第13题');
console.log(square([1, 2, 3, 4]));
/*
14、题目描述
在数组 arr 中,查找值与 item 相等的元素出现的所有位置
示例1
输入
['a','b','c','d','e','f','a','b','c'] 'a'
输出
[0, 6]
*/
function findAllOccurrences(arr, target) {
var result = [];
for (var i = 0; i < arr.length; i++) {
if (arr[i] === target) {
result.push(i);
}
}
return result;
}
/*自己写的
function xxx(arr,item){
var newarr = [];
var a;
for (var i = 0; i < arr.length; i++) {
if(arr[i]===item){
if(newarr.indexOf(arr[i])===-1){
newarr.push(i);
}
}
}
return newarr;
}*/
console.log('第14题');
console.log(findAllOccurrences(['a', 'b', 'c', 'd', 'e', 'f', 'a', 'b', 'c'], 'a'));
/*
15、题目描述
判断 val1 和 val2 是否完全等同
*/
function identity(val1, val2) {
if (val1 === val2) {
return '相等';
} else {
return '不相等';
}
}
console.log('第15题');
console.log(identity(1, 1));
/*
16、题目描述
定义一个计算圆面积的函数area_of_circle(),它有两个参数:
r: 表示圆的半径;
pi: 表示π的值,如果不传,则默认3.14
*/
function area_of_circle(r, pi) {
return pi * r * r;
}
console.log('第16题');
console.log(area_of_circle(3, 3.14));
/*
17、题目描述
<!-- HTML结构 -->
<ul id="test-list">
<li>JavaScript</li>
<li>Swift</li>
<li>HTML</li>
<li>ANSI C</li>
<li>CSS</li>
<li>DirectX</li>
</ul>
针对以上文档结构,请把与Web开发技术不相关的节点删掉:
注意!!请分别使用原生JS和jQuery两种试实现!!!!!
*/
var parent = document.getElementById('test-list');
/*
18、题目描述
对如下的Form表单:
<!-- HTML结构 -->
<form id="test-form" action="test">
<legend>请选择想要学习的编程语言:</legend>
<fieldset>
<p><label class="selectAll"><input type="checkbox"> <span class="selectAll">全选</span><span class="deselectAll">全不选</span></label> <a href="#0" class="invertSelect">反选</a></p>
<p><label><input type="checkbox" name="lang" value="javascript"> JavaScript</label></p>
<p><label><input type="checkbox" name="lang" value="python"> Python</label></p>
<p><label><input type="checkbox" name="lang" value="ruby"> Ruby</label></p>
<p><label><input type="checkbox" name="lang" value="haskell"> Haskell</label></p>
<p><label><input type="checkbox" name="lang" value="scheme"> Scheme</label></p>
<p><button type="submit">Submit</button></p>
</fieldset>
</form>
要求:
绑定合适的事件处理函数,实现以下逻辑:
当用户勾上“全选”时,自动选中所有语言,并把“全选”变成“全不选”;
当用户去掉“全不选”时,自动不选中所有语言;
当用户点击“反选”时,自动把所有语言状态反转(选中的变为未选,未选的变为选中);
当用户把所有语言都手动勾上时,“全选”被自动勾上,并变为“全不选”;
当用户手动去掉选中至少一种语言时,“全不选”自动被去掉选中,并变为“全选”。
*/
var
form = $('#test-form'),
langs = form.find('[name=lang]'),
selectAll = form.find('label.selectAll :checkbox'),
selectAllLabel = form.find('label.selectAll span.selectAll'),
deselectAllLabel = form.find('label.selectAll span.deselectAll'),
invertSelect = form.find('a.invertSelect');
form.find('*').show().off();
form.find(':checkbox').prop('checked', false).off();
deselectAllLabel.hide();
form.off().submit(function (e) {
e.preventDefault();
alert(form.serialize());
});
selectAllLabel.on('click', function () {
if (!selectAll.prop('checked')) {
langs.prop({ checked: true });
deselectAllLabel.show();
selectAllLabel.hide();
} else {
langs.pop({ checked: true });
}
})
deselectAllLabel.on('click', function () {
if (!selectAll.prop('checked')) {
langs.prop({ checked: true });
} else {
langs.prop({ checked: false });
selectAllLabel.show();
deselectAllLabel.hide();
}
})
invertSelect.on('click', function () {
langs.each(function () {
if (this.checked) {
$(this).prop({ checked: false });
deselectAllLabel.hide();
selectAll.prop({ checked: false });
selectAllLabel.show();
} else {
this.checked = true;
count = 0;
langs.each(function () {
if (this.checked) {
count++;
}
})
if (count === lengths) {
deselectAllLabel.show();
selectAllLabel.hide();
selectAll.prop({ checked: true })
}
}
})
})
var count,
lengths = langs.length;
langs.click(function(){
langs.each(function () {
if (this.checked) {
count++;
}
})
if (count === lengths) {
deselectAllLabel.show();
selectAllLabel.hide();
selectAll.prop({ checked: true })
}
})
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化