concat合并的数组会有顺序么_超全的JS常用数组方法整理

  • 前言
  • 常用数组方法汇总
  • 方法解析
    • 1:concat();
    • 2:join();
    • 3:pop();
    • 4:shift();
    • 5:unshift();
    • 7:reverse();
    • 8:sort();
    • 9:slice();
    • 10:splice();
    • 11:toString();
    • 12:valueOf();
    • 13:IndexOf();
    • 14:lastIndexOf();
    • 15:forEach();
    • 16:map();
    • 17:filter();
    • 18:every();
    • 19:some();
    • 20.reduce();
    • 21.reduceRight()
  • 三:哪些数组方法会改变原数组
  • 参考文章

前言

我们在学到js中数组的时候,我们会接触到js中数组的一些方法这些方法对我们来说,可以很便利的达到我们想要的结果,但是因为方法比较多,有些方法也不常用,可能会过一段时间就会忘记,那么在这里我整理了21个数组的方法,供大家查阅。

常用数组方法汇总

5de7bb2e5d47913d91425fce5a649d35.png

方法解析

1:concat();

功能:合并数组,可以合并一个或多个数组,会返回合并数组之后的数据,不会改变原来的数组

var str1 = [12,2,"hello"];var str2 = ["world"];
console.log(str1.concat(str2));        //[12, 2, "hello", "world"]
console.log(str1);                //[12,2,"hello"];

2:join();

功能:将数组转为字符串并返回转化的字符串数据,不会改变原来的数组;

注意:()中用双引号包括自己想用的分隔符,默认为逗号,这里方便观察,我用了-  

var str1 = [12,2,"hello"];
var str2 = ["world"];
console.log(str1.join("-"));        //12-2-hello
console.log(str1);              //[12, 2, "hello"]

3:pop();

功能:删除数组的最后一位,并且返回删除的数据,会改变原来的数组

var str1 = [12,2,"hello"];
console.log(str1.pop()        //hello
console.log(str1);          //[12, 2]

4:shift();

功能:删除数组的第一位数据,并且返回删除的数据,会改变原来的数组

5:unshift();

功能:在数组的首位新增一个或多数据,并且返回新数组的长度,会改变原来的数组

注意:unshift()方法返回的数据是新数组的长度,它增加的数据可以是一个也可以是多个,可以理解为增加一连串的数据,

var str1 = [12,2,"hello"];
var str2 = [43,2,"test"];
console.log(str1.unshift("你好"));              //4
console.log(str2.unshift("hello","world"));        //5
console.log(str1);                       //["你好", 12, 2, "hello"]
console.log(str2);                       //["hello", "world", 43, 2, "test"]

6:push();

功能:在数组的最后一位新增一个或多个数据,并且返回新数组的长度,会改变原来的数组

注意:push()方法返回的是数据是新数组的长度,它增加的数据可以是一个也可以是多个,可以理解为增加一连串的数据。

var str1 = [12,2,"hello"];
var str2 = [43,2,"test"];
console.log(str1.push("你好"));          //4
console.log(str2.push("hello","world"));    //5
console.log(str1);                 //[12, 2, "hello","你好"]
console.log(str2);                 //[43, 2, "test","hello", "world"]

7:reverse();

功能:将数组的数据进行反转,并且返回反转后的数组,会改变原数组

var str1 = [12,2,"hello"];
console.log(str1.reverse());      //["hello", 2, 12]
console.log(str1);            //["hello", 2, 12]

8:sort();

功能:对数组内的数据进行排序(默认为升序),并且返回排过序的新数组,会改变原来的数组

注意:

  • 8.1:这里的排序是针对字符的排序,先使用数组的toString()方法转为字符串,再逐位比较,3是大于12的,因为首位3>1,不要与Number型的数据排序混淆
  • 8.2:str2数组中增加了三个字符,可以看到,比较的时候,zoom是最大的,因为首位的英文字母通过ASCII码可以转为相应的数值,再根据数值比较
var str1 = [12,2,43,5,2,5];
var str2 = [92,2,43,"hello",'zoom',5,2,5];
console.log(str1.sort());//[12, 2, 2, 43, 5, 5]
console.log(str1);//[12, 2, 2, 43, 5, 5]
console.log(str2.sort());//[2, 2, 43, 5, 5, 92, "abc", "hello", "zoom"]
console.log(str2);//[2, 2, 43, 5, 5, 92, "abc", "hello", "zoom"]
  • 8.3:排序问题

参数:sort(callback) 如果需要按照数值排序,需要传参。sort(callback)callback为回调函数,该函数应该具有两个参数,比较这两个参数,然后返回一个用于说明这两个值的相对顺序的数字(a-b)。其返回值如下:

若 a 小于 b,返回一个小于 0 的值。

若 a 等于 b,则返回 0。

若 a 大于 b,则返回一个大于 0 的值。

var str3 = [92,2,43,5,2,5];     
console.log(str3.sort(fn));                 //[2, 2, 5, 5, 43, 92]
console.log(str3);                      //[2, 2, 5, 5, 43, 92]
function fn (a,b){return a-b;}

9:slice();

功能:截取指定位置的数组,并且返回截取的数组,不会改变原数组

参数:slice(startIndex, endIndex)

注意:可从已有的数组中返回选定的元素。该方法接收两个参数slice(start,end)stsrt为必选,表示从第几位开始;end为可选,表示到第几位结束(不包含end位),省略表示到最后一位;start和end都可以为负数,负数时表示从最后一位开始算起,如-1表示最后一位。

var arr = ["T1","J1","L1","L2","M1"];console.log(arr.slice(1,3));        //["J1","L1"]console.log(arr.slice(1));          //["J1","L1","L2","M1"]console.log(arr.slice(-4,-1));      //["J1","L1","L2"]console.log(arr.slice(-2));         //["Lily","M1"]console.log(arr.slice(1,-2));       //["J1","L1"]console.log(arr);                   //["T1","J1","L1","L2","M1"]

10:splice();

功能:向数组中添加,或从数组删除,或替换数组中的元素,然后返回被删除/替换的元素。

参数:splice(start,num,data1,data2,...); 所有参数全部可选。

var arr = ["Tom","Jack","Lucy","Lily","May"];
console.log(arr.splice(2,0,"a","b"));//[]
console.log(arr);//["Tom", "Jack", "a", "b", "Lucy", "Lily", "May"]---原数组改变

11:toString();

功能:将数组转换成字符串,类似于没有参数的join()。该方法会在数据发生隐式类型转换时被自动调用,如果手动调用,就是直接转为字符串。不会改变原数组

var str = [1,2,3];
console.log(str.toString()); //1,2,3
console.log(str);//[1,2,3]

12:valueOf();

功能:返回数组的原始值(一般情况下其实就是数组自身),一般由js在后台调用,并不显式的出现在代码中

var str = [1,2,3];
console.log(str.valueOf()); //[1,2,3]
console.log(str); //[1,2,3]
//为了证明返回的是数组自身
console.log(str.valueOf() == str);//true

13:IndexOf();

功能:根据指定的数据,从左向右,查询在数组中出现的位置,如果不存在指定的数据,返回-1,找到了指定的数据返回该数据的索引

参数:indexOf(value, start);value为要查询的数据;start为可选,表示开始查询的位置,当start为负数时,从数组的尾部向前数;如果查询不到value的存在,则方法返回-1

注意:如果找到该数据,立即返回该数据的索引,不再往后继续查找

var str = ["h","e","l","l","o"];console.log(str.indexOf("l"));        //2console.log(str.indexOf("l",3));      //3console.log(str.indexOf("l",4));      //-1console.log(str.indexOf("l",-1));     //-1console.log(str.indexOf("l",-3));     //2

14:lastIndexOf();

功能:lastIndexOf() 方法可返回一个指定的字符串值最后出现的位置,如果指定第二个参数 start,则在一个字符串中的指定位置从后向前搜索

参数:lastIndexOf(value, start);value为要查询的数据;start为可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略该参数,则将从字符串的最后一个字符处开始检索。

var str = ["h","e","l","l","o"];
console.log(str.lastIndexOf("l"));        //3
console.log(str.lastIndexOf("l",3));      //3
console.log(str.lastIndexOf("l",4));      //3
console.log(str.lastIndexOf("l",-1));     //3
console.log(str.lastIndexOf("l",-3));     //2
  • 注意: 该方法将从后向前检索字符串,但返回是从起始位置 (0) 开始计算子字符串最后出现的位置。 看它是否含有字符串。 开始检索的位置在字符串的 start 处或字符串的结尾(没有指定 start 时)。 如果没有找到匹配字符串则返回 -1 。
  • 注意:lastIndexOf() 方法是区分大小写的!

15:forEach();

功能:ES5新增的方法,用来遍历数组,没有返回值,

参数:forEach(callback);callback默认有三个参数,分别为value(遍历到的数组的数据),index(对应的索引),self(数组自身)。

var arr = ["Tom","Jack","Lucy","Lily","May"];
var a = arr.forEach(function(value,index,self){console.log(value + "--" + index + "--" + (arr === self));
})
// 打印结果为:
// Tom--0--true
// Jack--1--true
// Lucy--2--true
// Lily--3--true
// May--4--true
console.log(a);     //undefined---forEach没有返回值
//该方法为遍历方法,不会修改原数组

16:map();

功能:

同forEach功能;

map的回调函数会将执行结果返回,最后map将所有回调函数的返回值组成新数组返回。

  • 参数:map(callback);callback默认有三个参数,分别为value,index,self。跟上面的forEach()的参数一样
//功能1:同forEachvar arr = ["Tom","Jack","Lucy","Lily","May"];var a = arr.map(function(value,index,self){console.log(value + "--" + index + "--" + (arr === self))})// 打印结果为:// Tom--0--true// Jack--1--true// Lucy--2--true// Lily--3--true// May--4--true//功能2:每次回调函数的返回值被map组成新数组返回var arr = ["Tom","Jack","Lucy","Lily","May"];var a = arr.map(function(value,index,self){return "hi:"+value;})console.log(a);     //["hi:Tom", "hi:Jack", "hi:Lucy", "hi:Lily", "hi:May"]console.log(arr);   //["Tom", "Jack", "Lucy", "Lily", "May"]---原数组未改变

17:filter();

功能: 1.同forEach功能; 2.filter的回调函数需要返回布尔值,当为true时,将本次数组的数据返回给filter,最后filter将所有回调函数的返回值组成新数组返回(此功能可理解为“过滤”)

参数:filter(callback);callback默认有三个参数,分别为value,index,self。

//功能1:同forEachvar arr = ["Tom","Jack","Lucy","Lily","May"];var a = arr.filter(function(value,index,self){console.log(value + "--" + index + "--" + (arr === self))})// 打印结果为:// Tom--0--true// Jack--1--true// Lucy--2--true// Lily--3--true// May--4--true//功能2:当回调函数的返回值为true时,本次的数组值返回给filter,被filter组成新数组返回var arr = ["Tom","Jack","Lucy","Lily","May"];var a = arr.filter(function(value,index,self){return value.length > 3;})console.log(a);         //["Jack", "Lucy", "Lily"]console.log(arr);       //["Tom", "Jack", "Lucy", "Lily", "May"]---原数组未改变

18:every();

功能:判断数组中每一项是否都满足条件,只有所有项都满足条件,才会返回true

参数:every()接收一个回调函数作为参数,这个回调函数需要有返回值,every(callback);callback默认有三个参数,分别为value,index,self。

功能1:当回调函数的返回值为true时,类似于forEach的功能,遍历所有;如果为false,那么停止执行,后面的数据不再遍历,停在第一个返回false的位置

//demo1:var arr = ["Tom","abc","Jack","Lucy","Lily","May"];var a = arr.every(function(value,index,self){console.log(value + "--" + index + "--" + (arr == self))})// 打印结果为:// Tom--0--true//因为回调函数中没有return true,默认返回undefined,等同于返回false//demo2:var arr = ["Tom","abc","Jack","Lucy","Lily","May"];var a = arr.every(function(value,index,self){console.log(value + "--" + index + "--" + (arr == self))return value.length < 4;})// 打印结果为:// Tom--0--true// abc--1--true// Jack--2--true//因为当遍历到Jack时,回调函数到return返回false,此时Jack已经遍历,但是后面数据就不再被遍历了//demo3:var arr = ["Tom","abc","Jack","Lucy","Lily","May"];var a = arr.every(function(value,index,self){console.log(value + "--" + index + "--" + (arr == self))return true;})// 打印结果为:// Tom--0--true// abc--1--true// Jack--2--true// Lucy--3--true// Lily--4--true// May--5--true//因为每个回调函数的返回值都是true,那么会遍历数组所有数据,等同于forEach功能

功能2:当每个回调函数的返回值都为true时,every的返回值为true,只要有一个回调函数的返回值为false,every的返回值都为false

19:some();

功能:判断数组中是否存在满足条件的项,只要有一项满足条件,就会返回true

参数:some()接收一个回调函数作为参数,这个回调函数需要有返回值,some(callback);callback默认有三个参数,分别为value,index,self。

功能1:因为要判断数组中的每一项,只要有一个回调函数返回true,some都会返回true,所以与every正好相反,当遇到一个回调函数的返回值为true时,可以确定结果,那么停止执行,后面都数据不再遍历,停在第一个返回true的位置;当回调函数的返回值为false时,需要继续向后执行,到最后才能确定结果,所以会遍历所有数据,实现类似于forEach的功能,遍历所有。

//demo1:var arr = ["Tom","abc","Jack","Lucy","Lily","May"];var a = arr.some(function(value,index,self){console.log(value + "--" + index + "--" + (arr == self))return value.length > 3;})// 打印结果为:// Tom--0--true// abc--1--true// Jack--2--true//demo2:var arr = ["Tom","abc","Jack","Lucy","Lily","May"];var a = arr.some(function(value,index,self){console.log(value + "--" + index + "--" + (arr == self))return true;})// 打印结果为:// Tom--0--true//demo3:var arr = ["Tom","abc","Jack","Lucy","Lily","May"];var a = arr.some(function(value,index,self){console.log(value + "--" + index + "--" + (arr == self))return false;})// 打印结果为:// Tom--0--true// abc--1--true// Jack--2--true// Lucy--3--true// Lily--4--true// May--5--true

功能2:与every相反,只要有一个回调函数的返回值都为true,some的返回值为true,所有回调函数的返回值为false,some的返回值才为false

//demo1:var arr = ["Tom","abc","Jack","Lucy","Lily","May"];var a = arr.some(function(value,index,self){return value.length > 3;})console.log(a);             //true//demo2:var arr = ["Tom","abc","Jack","Lucy","Lily","May"];var a = arr.some(function(value,index,self){return value.length > 4;})console.log(a);             //false

20.reduce();

功能:从数组的第一项开始,逐个遍历到最后,迭代数组的所有项,然后构建一个最终返回的值

参数:reduce()接收一个或两个参数:第一个是回调函数,表示在数组的每一项上调用的函数;第二个参数(可选的)作为归并的初始值,被回调函数第一次执行时的第一个参数接收。 reduce(callback,initial);callback默认有四个参数,分别为prev,now,index,self。 callback返回的任何值都会作为下一次执行的第一个参数。 如果initial参数被省略,那么第一次迭代发生在数组的第二项上,因此callback的第一个参数是数组的第一项,第二个参数就是数组的第二项。

//demo1:不省略initial参数,回调函数没有返回值var arr = [10,20,30,40,50];arr.reduce(function(prev,now,index,self){console.log(prev + "--" + now + "--" + index + "--" + (arr == self))}, 2019)// 打印结果为:// 2019--10--0--true// undefined--20--1--true// undefined--30--2--true// undefined--40--3--true// undefined--50--4--true// 此时回调函数没有return,所以从第二次开始,prev拿到的是undefined//demo2:省略initial参数,回调函数没有返回值var arr = [10,20,30,40,50];arr.reduce(function(prev,now,index,self){console.log(prev + "--" + now + "--" + index + "--" + (arr == self))})// 打印结果为:第一次,回调函数的第一个参数是数组的第一项。第二个参数就是数组的第二项// 10--20--1--true// undefined--30--2--true// undefined--40--3--true// undefined--50--4--true// 此时回调函数没有return,所以从第二次开始,prev拿到的是undefined//demo3:不省略initial参数,回调函数有返回值var arr = [10,20,30,40,50];arr.reduce(function(prev,now,index,self){console.log(prev + "--" + now + "--" + index + "--" + (arr == self));return "hello";}, 2019)// 打印结果为:// 2019--10--0--true// hello--20--1--true// hello--30--2--true// hello--40--3--true// hello--50--4--true// 此时回调函数有return,所以从第二次开始,prev拿到的是回调函数return的值//demo4:省略initial参数,回调函数有返回值var arr = [10,20,30,40,50];arr.reduce(function(prev,now,index,self){console.log(prev + "--" + now + "--" + index + "--" + (arr == self));return "hello";})// 打印结果为:第一次,回调函数的第一个参数是数组的第一项。第二个参数就是数组的第二项// 10--20--1--true// hello--30--2--true// hello--40--3--true// hello--50--4--true// 此时回调函数有return,所以从第二次开始,prev拿到的是回调函数return的值//demo5:使用reduce计算数组中所有数据的和var arr = [10,20,30,40,50];var sum = arr.reduce(function(prev,now,index,self){return prev + now;})console.log(sum);      //150// 回调函数的最后一次return的结果被返回到reduce方法的身上//demo6:使用reduce计算数组中所有数据的和var arr = [10,20,30,40,50];var sum = arr.reduce(function(prev,now,index,self){return prev + now;}, 8)console.log(sum);      //158// 回调函数的最后一次return的结果被返回到reduce方法的身上// 因为reduce有第二个参数initial,在第一次执行时被计算,所以最终结果被加上8

21.reduceRight()

功能:(与reduce类似)从数组的最后一项开始,向前逐个遍历到第一位,迭代数组的所有项,然后构建一个最终返回的值。

参数:同reduce。 demo:同reduce

三:哪些数组方法会改变原数组

unshift();

push();

shift();

pop();

sort();

reverse();

splice();

这七个数组方法在上面都有过介绍了,可以看出,再用这些方法的时候,原数组是会被改变的。

参考文章

详解21个JavaScript数组方法(整理)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/551224.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

in ms sql 集合参数传递_mybatis从入门到精通,第三篇《动态SQL》,干货满满

动态 SQL 是 MyBatis 的强大特性之一。如果你使用过 JDBC 或其它类似的框架&#xff0c;你应该能理解根据不同条件拼接 SQL 语句有多痛苦&#xff0c;例如拼接时要确保不能忘记添加必要的空格&#xff0c;还要注意去掉列表最后一个列名的逗号。利用动态 SQL&#xff0c;可以彻底…

保存图像_06 - matplotlib中应知应会numpy存储、交换图像

matplotlib中应知应会numpy存储、交换图像numpy的ndarray是mpl官方推荐的输入数据结构mpl官方推荐绘图时&#xff0c;应以numpy的ndarray数据结构输入数据。虽然有时用pandas中的两个数据结构、python的list等数据结构也可以&#xff0c;但不能保证都能成功。这是因为numpy的nd…

css设置按钮竖直方向居中_如何借助伪元素实现垂直居中?

点击右上方红色按钮关注“小郑搞码事”&#xff0c;每天都能学到知识&#xff0c;搞懂一个问题&#xff01;今天给大家讲一种实现垂直居中的方法&#xff1a;伪元素法(::before/::after)一、vertical-align实现了什么&#xff1f;先来看一下vertical-align实现了什么&#xff0…

九年级数学解方程50道_【初中数学】北师大版九年级上册数学知识点总结

这里整理了一份【初中数学】北师大版九年级上册数学知识点总结其他版本的总结后面会更新资料有点多&#xff0c;建议先收藏完整版资料下载可搜【初中复习资料】回复【399】&#xff08;资料整理不易&#xff0c;可以收藏-转发支持一下吗&#xff09;资料有点多&#xff0c;建议…

小米9私密相册怎么找_“拼藏搜”,手机相册还能这么玩

发朋友圈九图不够看&#xff1f;私密照片不想被轻易看到&#xff1f;照片太多找半天太麻烦&#xff1f;别着急&#xff0c;学会这几招&#xff0c;成为“制片人”。第一招&#xff1a;“拼”成为“制片人”的第一步&#xff0c;当然是制作照片了&#xff01;拼出有feel的图就靠…

idea python工程zip打包_【面试划重点】-- Python常见知识点

分享工作中遇到的python知识点&#xff0c;估计很多人没太留意过这个知识点&#xff0c;但是对巩固很多基本语法和一些python中一些有用的方法很有帮助&#xff0c;工作中的问题我简化说下&#xff0c;大概就是下面需求&#xff1a;有3个python列表&#xff1a;分别是年龄&…

如何固定最小宽度_如何使用更新的HTML和CSS函数创建响应式设计

除了使用媒体查询和现代css布局(如flexbox和grid)来创建响应式网站外&#xff0c;我们还可以做好某些被忽视的事情来制作响应式网站。在本文中&#xff0c;我们将探讨许多可用的工具(围绕html和css)&#xff0c;从响应图像到相对较新的CSS函数&#xff0c;无论我们是否使用媒体…

如何将文件二进制传输至aix服务器,有什么办法把文件从WINDOWS系统中传到AIX中?...

有什么办法把文件从WINDOWS系统中传到AIX中&#xff1f;(2011-12-21 04:19:38)标签&#xff1a;杂谈有什么办法把文件从WINDOWS系统中传到AIX中&#xff1f;我有一台笔记本可以远程登陆170和F85&#xff0c;两台都是AIXV5.2&#xff0c;原来ML是04&#xff0c;想升级&#xff0…

小米手机硬改技术_小米11手机爆料:首发骁龙875 或采用屏下摄像头技术

12月1日高通应该就要公布骁龙875处理器&#xff0c;而对于这颗2021年的旗舰芯片&#xff0c;小米手机必然要抢首发&#xff0c;这也是他们一贯的传统。据最新消息称&#xff0c;小米11手机有望首发骁龙875处理器&#xff0c;不过这款手机预计要在明年3月份左右推出&#xff0c;…

小企业文件打印服务器,小企业云服务器方案

小企业云服务器方案 内容精选换一换在“确认配置”页面&#xff0c;查看云服务器配置详情。如果您对价格有疑问&#xff0c;可以单击“了解计费详情”来了解产品价格。如果您对价格有疑问&#xff0c;可以单击“了解计费详情”来了解产品价格。企业项目该参数针对企业用户使用。…

5怎么选国外节点_外卖包装怎么选?这5个技巧要掌握

(↑点上图“知识卡片”&#xff0c;按右上角箭头&#xff0c;可分享至朋友圈保存↑)在这个重颜值的时代&#xff0c;消费者对于外卖包装的诉求在逐渐提高&#xff0c;在餐品质量差异不大的前提下&#xff0c;那些包装好的商品&#xff0c;更具市场竞争力&#xff0c;能加深消费…

基于jmx监控kafka_0542-6.1.0-非安全环境下Kafka管理工具Kafka Eagle安装使用

1.文档编写目的Fayson在前面的文章介绍了《0374-如何在CDH集群中部署Kafka Manager》&#xff0c;本篇文章Fayson介绍另外一款的监控工具Kafka-eagle&#xff0c;它可以同时监控多个集群&#xff0c;监控集群中Topic的被消费情况(包含Lag产生、Offset的改变及Partition分布)&am…

android 怎么调用js项目_APP逆向神器之Frida【Android初级篇】

说到逆向APP&#xff0c;很多人首先想到的都是反编译&#xff0c;但是单看反编译出来的代码很难得知某个函数在被调用时所传入的参数和它返回的值&#xff0c;极大地增加了逆向时的复杂度&#xff0c;有没有什么办法可以方便地知道被传入的参数和返回值呢&#xff1f;答案是有的…

ef mysql modelfirst_MySQL –EF edmx(Model First)– Sql Server table

一、mysql environmentWhen we create an new database,first We need draw er diagram for somebody to show your idea,but our company have no goodauthorised tool to design sqlserver ER diagram,so I use mysql graphical tool to design it, after that,you can use m…

db2 联邦 mysql_DB2联邦数据库及配置方法(及联邦密码修改)

如果您需要使用所有不同的数据库&#xff0c;包括选择、插入、更新和删除&#xff0c;就象所有的表都位于单个数据库中那样&#xff0c;那么将获得非常高的工作效率。数据库联邦就是要做到这一点&#xff1a;使所有表看起来象是在同一个数据库中那么&#xff0c;数据库联邦是怎…

mysql t 保存_检查 (调试) - 离线消息保存到 MySQL - 《EMQ X Enterprise v4.1 中文文档》 - 书栈网 · BookStack...

离线消息保存到 MySQL搭建 MySQL 数据库&#xff0c;并设置用户名密码为 root/public&#xff0c;以 MacOS X 为例:$ brew install mysql$ brew services start mysql$ mysql-u root-h localhost-pALTER USERrootlocalhostIDENTIFIED BYpublic;初始化 MySQL 数据库:$ mysql-u r…

java @valid 密码不一致_一个成熟的Java项目如何优雅地处理异常

(一)概述异常处理是一个系统最重要的环节&#xff0c;当一个项目变得很大的时候&#xff0c;异常处理和日志系统能让你快速定位到问题。对于用户或者接口调用者而言&#xff0c;优雅的异常处理可以让调用者快速知道问题所在。本文将介绍如何优雅地处理异常。(二)使用通用的返回…

spark消费kafka产生数据堆积怎么处理_SparkStreaming读取Kafka的两种方式

本文主要从以下几个方面介绍SparkStreaming读取Kafka的两种方式:一、SparkStreaming简介二、Kafka简介三、Redis简介(可用于保存历史数据或偏移量数据)四、SparkStreaming读取Kafka数据的两种方式 五、演示Demo一、SparkStreaming简介可以参考这篇文章&#xff1a;SparkStreami…

python字符串操作作业_python 第二天作业

#python 中的循环#先介绍for循环#格式#for 临时变量 in 可迭代对象# 循环体#name neusoft#for a in name :# print(a)# if a s# print(嘿嘿)#循环次数哪里去了&#xff1f;# #这个a是什么鬼&#xff1f; a是临时变量 提前声明 python自动为你创建#range (起始位置&#xff0c…

python 白化_Python新疆某气候要素IDW(反距离权重)插值

1、Rbf插值import numpy as npimport cartopy.crs as ccrsimport cartopy.feature as cfeatfrom cartopy.mpl.gridliner import LONGITUDE_FORMATTER, LATITUDE_FORMATTERfrom cartopy.io.shapereader import Readerimport matplotlib.pyplot as pltimport matplotlib.ticker a…