本篇文章为大家展示了如何在Javascript中使用高级数组API,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
例一:伪数组,不能修改长短的数组(所以没办法清零),可以修改元素,代码实现如下:
<script>
fn(1,2);
fn(1,2,3,4,5,6);
fn(1,2,4,5,7,9,4);
function fn(a,b){
arguments[0]=0;
console.log(arguments);
arguments.push(1);
console.log(arguments instanceof Array);
console.log(arguments.length);//实参个数
console.log(fn.length);//形参个数
console.log(arguments.callee);//整个函数,包括注释
}
</script>
伪数组打印的是实参,而普通函数调用打印的是形参,并且打印它的函数类型,我们发现它的类型显示并不是数组。
例二:将一个字符串数组输出为|分割的形式,比如“刘备|张飞|关羽”。使用两种方式实现
方法一:不利用内置对象,进行字符串拼接,由于第一个元素前没有特殊符号,首先将其赋值后,循环从下一个元素开始遍历
<script>
var arr=["刘备","张飞","关羽"];
var str=arr[0];
for(var i=1;i<arr.length;i++){
str+="|"+arr[i];
}
console.log(str);
</script>
方法二:使用内置对象直接改变间隔符号
<script>
var arr=["刘备","张飞","关羽"];
var str=arr.join("|");
console.log(str);
</script>
两种方法进行对比,我们发现第一种方法使之产生了大量内存,导致内存浪费情况,从此看出对我们来说内置对象的使用帮我们解决了内存浪费的缺点。
例三:将一个字符串数组的元素的顺序进行反转。["a","b","c","d"] ->["d","c","b","a"]。使用两种种方式实现。
方法一:之前文章介绍过的方法
<script>
var str1=["a","b","c","d"];
var str2=[];
for(var i=0;i<str1.length;i++){
str2[str1.length-i-1]=str1[i];
}
console.log(str2);
</script>
方法二:直接使用内置对象reverse()
解决
<script>
var str1=["a","b","c","d"];
console.log(str1.reverse());
</script>
例四:工资的数组[1500,1200,2000,2100,1800],把工资超过2000的删除
使用内置对象filter()
实现题目需求。
<script>
var arr=[1500,1200,2000,2100,1800];
var arr1=arr.filter(function(element,index,array){
if(element<=2000){
return true;
}
return false;
})
console.log(arr1);
</script>
例五:["c","a","z","a","x","a"]找到数组中每一个元素出现的次数
由于题目给出字符形式,让我们求出的相应字符的个数为数字形式,这让我们应用json更方便问题解决,将题目给出的字符作为“键”,将次数作为“键值”,来判断数组中的元素,在json中是否存在属性值,如果存在,在原有基础上加上1;如果不存在直接赋值为1。
<script>
var arr=["c","a","z","a","x","a"];
var json={};
for(var i=0;i<arr.length;i++){
if(json[arr[i]]!==undefined){
json[arr[i]]+=1;
}else{
json[arr[i]]=1;
}
}
console.log(json);
</script>
例六:编写一个方法 去掉一个数组的重复元素
方法一:新建数组,将原数组第一个元素push进入新数组。遍历原数组的每一个元素使之在新数组每一个元素中都不存在(嵌套两层for循环),就push进入原数组,否则就跳出新数组循环,进入原数组的下一个元素循环。
<script>
var arr=[3,2,4,5,5,3,5,568,4,21,7];
var arr1=fn(arr);
function fn(array){
var arr2=[];
arr2.push(array[0]);
abc:for(var i=0;i<array.length;i++){
for(var j=0;j<arr2.length;j++){
if(arr2[j]==array[i]){
continue abc;
}
}
arr2.push(array[i]);
}
return arr2;
}
console.log(arr1);
</script>
方法二:创建一个新数组,循环遍历,只要新数组中有旧数组的值,就不要在添加。每次都要判断新数组中是否有旧数组的值,保证旧数组的元素和新数组中每一个都不相等,则赋值给新数组的下一元素的值。
<script>
var arr=[1,2,3,4,5,2,3,4];
console.log(arr);
console.log(fn(arr));
function fn(array){
var newArr=[];
for(var i=0;i<array.length;i++){
var bool=true;
for(var j=0;j<newArr.length;j++){
if(array[i]===newArr[j]){
bool=false;
}
}
if(bool){
newArr[newArr.length]=array[i];
}
}
return newArr;
}
</script>
1.JavaScript主要用来向HTML页面添加交互行为。 2.JavaScript可以直接嵌入到HTML页面,但写成单独的js文件有利于结构和行为的分离。 3.JavaScript具有跨平台特性,在绝大多数浏览器的支持下,可以在多种平台下运行。
上述内容就是如何在Javascript中使用高级数组API,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。