JS编程练习题
一、
实现一个函数,输入某个字符串,输出其中出现最多的字符和个数
示例:
function fn(str){
// ...
}
fn("abcabcbbccccc"); // 字符最多的是 c,出现了 7 次
二、
封装方法将字符串转化为驼峰命名
示例:
function fn(str){
// ...
}
var s1 = "get-element-by-id";
fn(s1); // getElementById
三、
给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。
示例:
function fn(str){
// ...
}
s = "leetcode"
fn(s) // 返回 0
s = "loveleetcode"
fn(s) // 返回 2
四、
实现一个函数 dealArr,接受两个参数(数组,函数),返回值为每一个选项都经过函数处理后的新数组,注意操作过程不能影响原来的数组。效果类似于:
var arr = [1,2,3,4];
function dealArr(array, fn){
// ...
}
var newArr = dealArr(arr, function(item) {
return item + 2;
});
console.log(newArr); // [3,4,5,6]
console.log(arr); // [1,2,3,4]
五、
统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符。
请注意,你可以假定字符串里不包括任何不可打印的字符。
输入: "Hello, my name is John"
输出: 5
解释: 这里的单词是指连续的不是空格的字符,所以 "Hello," 算作 1 个单词。
输入:"how are you"
输出:3
六、
请写一个函数,将数字的整数位以千分位分隔 例如:
示例:
function fn(num){
// ...
}
fn(1234567) // "1,234,567"
fn(12345.67) // "12,345.67"
七、
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。
你可以按任意顺序返回答案。
示例:
输入:nums = [2,7,11,15], target = 9
输出:[0,1]
解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。
输入:nums = [3,2,4], target = 6
输出:[1,2]
输入:nums = [3,3], target = 6
输出:[0,1]
八、
书写一个函数,以两个有序数组作为参数,返回合并成的有序数组,请尽可能的用多种方式实现
示例:
function fn(arr1, arr2){
// ....
}
var nums1 = [1,2,3]
var nums2 = [2,5,6]
fn(nums1, nums2); // [1,2,2,3,5,6]
九、
实现一个函数,传入一个或多个对象,返回一个合并了它们所有属性的对象,如果出现同名属性,后面你的属性值会覆盖前面的
示例:
function fn(){
// ...
}
var user = {
name: "李白",
age: 24,
tel: "13535356767"
}
fn(user, { age: 40, sex: "男" }, { name: "奥特曼", address: "M78星云" }); // { name: 奥特曼, age: 40, sex: 男, tel: "13535356767", address: "M78星云" }
十、
实现一个函数,传入一个数组,以及条件函数,返回数组的每一项是否符合筛选条件,都符合返回 true
,任意一项不符合返回 false
例如:
function dealArr(arr, fn){
// ...
}
var arr = [1,2,3,4,5];
dealArr(arr, function(item){
return item < 10;
}) // true
dealArr(arr, function(item){
return item > 1;
}) // false
文档更新时间: 2023-07-19 14:07 作者:孙老师