概述
第一题:
题目描述:
找出元素 item 在给定数组 arr 中的位置
输出描述:
如果数组中存在 item,则返回元素在数组中的位置,否则返回 -1 示例代码:
arr = [1,2,3,4]
item = 4
复制代码
题目解答:
let arr = [1,2,3,4]
let len = arr.length
let indexOf = (arr, item) => {
for (let i = 0; i < len; i++){
if(arr[i] === item){
return i
}
}
return -1
}
console.log(indexOf(arr, 4))//3
复制代码
第二题
题目描述:
计算给定数组 arr 中所有元素的总和
输出描述
数组中的元素均为 Number 类型 示例代码:
arr = [1,2,3,4]
复制代码
题目解答:
//方法一
let arr = [1,2,3,4]
function sum (arr){
let num = 0
arr.forEach (v => num += v )
return num
}
console.log(sum(arr))//10
//方法二
let arr2 =[1,3,9,55,44,3,4]
let result = arr2.reduce((a,b) => a+b, 0)
console.log(result)//119
//a: 上次回调的结果
//b: 遍历的每一项数据
//0: a的初始值
复制代码
第三题
题目描述:
移除数组 arr 中的所有值与 item 相等的元素。不要直接修改数组 arr,结果返回新的数组
示例代码:
#输入
arr = [1, 2, 2, 3, 4, 2, 2]
item = 2
#输出
[1, 3, 4]
复制代码
题目解答:
//方法一
let arr = [1, 2, 2, 3, 4, 2, 2]
let item = 2
function filter(arr){
let arr2 =[]
arr.forEach(v => {
if(v !== item){
arr2.push(v)
}
})
return arr2
}
console.log(filter(arr))//[1, 3, 4]
//方法二
let arr = [1, 2, 2, 3, 4, 2, 2]
let item = 2
let arr2 = arr.filter(v => v !== item)
console.log(arr2)//[1, 3, 4]
复制代码
第四题
题目描述:
移除数组 arr 中的所有值与 item 相等的元素,直接在给定的 arr 数组上进行操作,并将结果返回
示例代码:
#输入
item = 2
arr = [1, 2, 2, 3, 4, 2, 2]
#输出
[1, 3, 4]
复制代码
题目解答:
let arr = [1, 2, 2, 3, 4, 2, 2]
let item = 2
function fn(arr, item){
//倒序遍历
for(let i = arr.length - 1; i >= 0; i--){
if(arr[i] === item){
arr.splice(i, 1)
}
}
}
fn(arr, item)
console.log(arr)//[1, 3, 4]
复制代码
第五题
题目描述:
在数组 arr 末尾添加元素 item。不要直接修改数组 arr,结果返回新的数组 示例代码:
#输入
arr = [1,2,3,4]
item = 5
#输出
[1,2,3,4,5]
复制代码
题目解答:
let arr = [1,2,3,4]
let item = 5
function push(arr, item){
let newArr = [...arr]
newArr.push(item)
//先复制数组 后对新数组push
return newArr
}
console.log(arr)//[1, 2, 3, 4]
console.log(push(arr, item))// [1, 2, 3, 4, 5]
复制代码
第六题
题目描述:
删除数组 arr 最后一个元素。不要直接修改数组 arr,结果返回新的数组 示例代码:
#输入
arr = [1,2,3,4]
#输出
[1,2,3]
复制代码
题目解答:
let arr = [1,2,3,4]
function removeLast(arr){
let newArr = arr.slice(0,arr.length - 1)
return newArr
}
console.log(removeLast(arr))//[1,2,3]
console.log(arr)//[1,2,3,4]
复制代码
第七题
题目描述:
在数组 arr 开头添加元素 item。不要直接修改数组 arr,结果返回新的数组 示例代码:
#输入
arr = [1, 2, 3, 4]
item = 5
#输出
[5, 1, 2, 3, 4]
复制代码
题目解答:
let arr = [1, 2, 3, 4]
let item = 5
let newArr = arr.slice()
newArr.unshift(item)
console.log(newArr)//[5, 1, 2, 3, 4]
复制代码
第八题
题目描述:
删除数组 arr 第一个元素。不要直接修改数组 arr,结果返回新的数组 示例代码:
#输入
arr = [1, 2, 3, 4]
#输出
[2, 3, 4]
复制代码
题目解答:
let arr = [1, 2, 3, 4]
let newArr = []
for(let i = 1; i < arr.length; i++){
newArr[i-1] = arr[i]
}
console.log(newArr)//[2, 3, 4]
复制代码
第九题
题目描述:
合并数组 arr1 和数组 arr2。不要直接修改数组 arr,结果返回新的数组 示例代码:
#输入
[1, 2, 3, 4], ['a', 'b', 'c', 1]
#输出
[1, 2, 3, 4, 'a', 'b', 'c', 1]
复制代码
题目解答:
//方法一
let arr1 = [1, 2, 3, 4]
let arr2 = ['a', 'b', 'c', 1]
let newArr = [...arr1, ...arr2]
console.log(newArr)//[1, 2, 3, 4, "a", "b", "c", 1]
//方法二
let arr1 = [1, 2, 3, 4]
let arr2 = ['a', 'b', 'c', 1]
let newArr = [].concat(arr1, arr2)
console.log(newArr)//[1, 2, 3, 4, "a", "b", "c", 1]
复制代码
第十题
题目描述:
在数组 arr 的 index 处添加元素 item。不要直接修改数组 arr,结果返回新的数组 示例代码:
##输入
arr = [1, 2, 3, 4]
item = 'z'
index = 2
#输出
[1, 2, 'z', 3, 4]
复制代码
题目解答:
let arr = [1, 2, 3, 4]
let item ="z"
let index = 2
let newArr = [...arr] //复制数组
newArr.splice(index, 0, item)
console.log(newArr)//[1, 2, "z", 3, 4]
复制代码
第十一题
题目描述:
统计数组 arr 中值等于 item 的元素出现的次数 示例代码:
#输入
arr = [1, 2, 4, 4, 3, 4, 3]
item = 4
#输出
3
复制代码
题目解答:
let arr = [1, 2, 4, 4, 3, 4, 3]
let item = 4
let count = 0
arr.forEach(v => v === item && count++)
console.log(count)//3
复制代码
第十二题
题目描述:
翻转字符串 示例代码:
#输入
str = "123456789"
#输出
"987654321"
复制代码
题目解答:
let str = "123456789"
//先用split方法转成数组,再对数组调用reverse方法,再用join方法转成字符串
let str2 = str.split("").reverse().join("")
console.log(str2)//987654321
复制代码
第十三题
题目描述:
计算阶乘 示例代码:
function factorial(){
// code
}
输出:
factorial(5) // 20
复制代码
题目解答:
//方法一
function factorial(n){
// n = 5
if(n === 1){
return n
}
return n * factorial(n - 1) // 递归
}
console.log(factorial(5))
//方法二
function factorial(n, target = 1){
if(n === 1)return target;
return factorial(n - 1, n * target)//尾递归
}
复制代码
前端小白,第一次发表文章,如有错误地方,请指出,谢谢! 爱生活,爱代码,让我们一起进步吧o(≧∇≦o)
转载于:https://juejin.im/post/5b924a1be51d450e735e1d63
最后
以上就是粗心毛豆为你收集整理的js数组的13个题第一题:第二题第三题第四题第五题第六题第七题第八题第九题第十题第十一题第十二题第十三题的全部内容,希望文章能够帮你解决js数组的13个题第一题:第二题第三题第四题第五题第六题第七题第八题第九题第十题第十一题第十二题第十三题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复