JavaScript 常见面试题
此文内容多为 JavaScript 对数组理解及运用。
1、如何消除一个数组里面重复的元素?
var arr = [1, 2, 3, 3, 4, 4, 5, 5, 6, 1];
var newArr =[];
for(var i =0; i<arr.length; i++){
if(newArr.indexOf(arr[i])<0){
newArr.push(arr[i]);
}
}
console.log(newArr);
2、es6 利用 set 数组去重方法
changeReArr=(arr)=>{
// 利用set将数组转化成set数据,利用Array from 将set数据转化成数组
return Array.from(new Set(arr));
}
console.log(changeReArr([3,3,45,6,7,8,9,5,4]));
3、es6 set 第二种方法
changeReArr2=(arr)=>{
// 利用...扩展运算付将set中的值遍历出来重新定义一个数组
// ... 是利用for...of 遍历的
return [...new Set(arr)]
}
console.log(changeReArr2([3,3,45,6,7,8,9,5,4]));
4、实现数组的随机排序
// 方法一
var arr = [1,2,3,4,5,6,7,8,9,10];
function randSort1(arr){
for(var i = 0,len = arr.length;i < len; i++ ){
var rand = parseInt(Math.random()*len);
var temp = arr[rand];
arr[rand] = arr[i];
arr[i] = temp;
}
return arr;
}
console.log(randSort1(arr)); // 方法二
var arr = [1,2,3,4,5,6,7,8,9,10];
function randSort2(arr){
var mixedArray = [];
while(arr.length > 0){
var randomIndex = parseInt(Math.random()*arr.length);
mixedArray.push(arr[randomIndex]);
arr.splice(randomIndex, 1);
}
return mixedArray;
}
console.log(randSort2(arr)); // 方法三
var arr = [1,2,3,4,5,6,7,8,9,10];
arr.sort(function(){
return Math.random() - 0.5;
})
console.log(arr);
5、生成十个10到100的随机数 并添加到数组里 并排序
var iArray = [];
function getRandom(istart,iend)
{
var ichoice = iend - istart;
return Math.floor(Math.random() * ichoice + istart);
} for(var i =0; i<10; i++){
var nums = getRandom(10,100);
if(iArray.indexOf(nums) < 0){
iArray.push(nums);
}else{
iArray.push(getRandom(10,100));
}
}
iArray.sort();
console.log(iArray);
6、把两个数组合并,并删除第二个元素。
var arr1 = ['a','b','q'];
var arr2 = ['w','e','r'];
var meshArr = arr1.concat(arr2);
meshArr.splice(1,1);
console.log(meshArr);
7、提取URL中的各个GET参数
var urlStr = "http://item.taobao.com/item.htm?a=1&b=2&c=&d=xxx&e";
function serilizeUrl(url)
{
var result = {};
url = url.split("?")[1];
var map = url.split("&");
for(var i = 0; i<map.length; i++){
result[map[i].split("=")[0]] = map[i].split("=")[1];
}
return result;
}
console.log(serilizeUrl(urlStr));
8、输出今天的日期,以YYYY-MM-DD的方式,比如今天是2014年9月26日,则输出2014-09-26
var date = new Date();
var dateYear = date.getFullYear();
var dateMonth = date.getMonth() + 1; dateMonth = dateMonth < 10 ? '0'+dateMonth : dateMonth; var dateDays = date.getDate(); dateDays = dateDays < 10 ? '0'+dateDays : dateDays; console.log(dateYear + '-' + dateMonth + '-' + dateDays);
JavaScript 常见面试题的更多相关文章
- 【javascript常见面试题】常见前端面试题及答案
转自:http://www.cnblogs.com/syfwhu/p/4434132.html 前言 本文是在GitHub上看到一个大牛总结的前端常见面试题,很多问题问的都很好,很经典.很有代表性.上 ...
- 【持续更新】JavaScript常见面试题整理
[重点提前说]这篇博客里的问题涉及到了了JS中常见的的基础知识点,也是面试中常见的一些问题,建议初入职场的园友Mark收藏,本文会持续更新~ 1. 引入JS的三种方式 1.在HTML标签中直接使用,直 ...
- javascript常见面试题
闭包相关面试题:1. var a=0,b=0; function A(a){ A=function(b){console.log(a+b++);}; console.log(a); } A(1); A ...
- javascript常见面试题之一:数组的冒泡排序;
var arr=[32,2,7,78,90,10]; //外层循环控制轮数: for (var i = 0; i < arr.length; i++) { //内层循环控制次数: for (va ...
- javascript常见面试题之一:将字符串'get-element-by-id'转换成驼峰命名法;
var str='get-element-by-id'; function strToupper(str) { //利用split将字符串分割成数组var arr= str.split('-'); f ...
- 整理的最全 python常见面试题(基本必考)
整理的最全 python常见面试题(基本必考) python 2018-05-17 作者 大蛇王 1.大数据的文件读取 ① 利用生成器generator ②迭代器进行迭代遍历:for line in ...
- 整理的最全 python常见面试题
整理的最全 python常见面试题(基本必考)① ②③④⑤⑥⑦⑧⑨⑩ 1.大数据的文件读取: ① 利用生成器generator: ②迭代器进行迭代遍历:for line in file; 2.迭代 ...
- java常见面试题及答案 1-10(基础篇)
java常见面试题及答案 1.什么是Java虚拟机?为什么Java被称作是"平台无关的编程语言"? Java 虚拟机是一个可以执行 Java 字节码的虚拟机进程.Java 源文件被 ...
- Web开发的常见面试题HTML和HTML5等
作为一名前端开发人员,HTML,HTML5以及网站优化都是必须掌握的技术,下面列举一下HTML, HTML5, 网站优化等常见的面试题: HTML常见面试题: 1. 什么是Semantic HTML( ...
随机推荐
- ngRoute 与ui.router区别
angular路由 路由 (route) ,几乎所有的 MVC(VM) 框架都应该具有的特性,因为它是前端构建单页面应用 (SPA) 必不可少的组成部分. 那么,对于 angular 而言,它自然也有 ...
- D03——C语言基础学习PYTHON
C语言基础学习PYTHON——基础学习D03 20180804内容纲要: 1 函数的基本概念 2 函数的参数 3 函数的全局变量与局部变量 4 函数的返回值 5 递归函数 6 高阶函数 7 匿名函数 ...
- MiniUi-----Spinner 数值调节器(可以实现任意值的递增)
Spinner 数值调节器可以实现任意值的递增,每次的递增值主要是通过increment="递增值"属性来控制的. 属性 该属性扩展自验证框(validatebox),下面是为微调 ...
- php5数组与php7数组区别
http://ju.outofmemory.cn/entry/197064 http://www.fzb.me/2015-9-16-php7-implementation-hashtable.html ...
- git常用的命令你知道有哪些?
1.git与svn的区别 1,git是目前世界上最先进的分布式版本控制系统,他没有中央服务器,每个人的电脑就是一个完整的版本库,这样,工作的时候不需要联网 2,svn是集中式版本控制系统,版本库是集中 ...
- windows7下部署tomcat
需要准备的软件: 1.JDK 安装程序 2.Tomcat 安装程序 JDK安装步骤: 安装方式:使用安装程序进行安装.使用JDK文件夹,免安装,以下步骤使用的是文件夹免安装,只需配置环境变量 配置环境 ...
- System.Thread.TImer控件——http://www.360doc.com/content/11/0812/11/1039473_139824496.shtml
http://www.360doc.com/content/11/0812/11/1039473_139824496.shtml
- Window History对象
History 对象属性 length 返回浏览器历史列表中的 URL 数量. History 对象方法 back() 加载 history 列表中的前一个 URL. window.history.b ...
- centos 7 keepalived故障邮件通知实战(附Python邮件发送脚本)
centos 7 keepalived故障邮件通知实战(附Python邮件发送脚本) ##################### sendmail.py begin ######## ...
- java I/O系统总结
1. InputStream : 从文件.网络.压缩包等中读取 需要的信息到程序中的变量 read(); read(byte []b ); mark(int readlimit); reset ...