、利用ES6 Set去重(ES6中最常用)
function unique (arr){
return Array.from(new Set(arr))
}
var arr = [1,1,'true','true',true,true,15,15,false,false, undefined,undefined,
null,null, NaN, NaN,'NaN', 0, 0, 'a', 'a',{},{}];
console.log(unique(arr))
//[1, "true", true, 15, false, undefined, null, NaN, "NaN", 0, "a", {}, {}]
不考虑兼容性,这种去重的方法代码最少。这种方法还无法去掉“{}”空对象,后面的高阶方法会添加去掉“{}”空对象。
二、利用for嵌套for,然后splice去重(ES5中最常用)
function unique(arr){
for(var i=0; i<arr.length; i++){
for(var j=i+1;j<arr.length; j++){
if(arr[i]==arr[j]){ //第一个等同于第二个,splice方法删除第二个
arr.splice(j,1);
j--;
}
}
}
return arr;
}
var arr = [1,1,'true','true',true,true,15,15,false,false, undefined,undefined, null,null, NaN, NaN'NaN', 0, 0, 'a', 'a',{},{}];
console.log(unique(arr))
//[1, "true", 15, false, undefined, NaN, NaN, "NaN", "a", {…}, {…}]
双层循环,外层循环元素,内层循环时比较值。值相同时,则删去这个值
三、利用indexOf去重
新建一个空的结果数组,for 循环原数组,判断结果数组是否存在当前元素,如果有相同的值则跳过,不相同则push进数组。
四、利用sort()
利用sort()排序方法,然后根据排序后的结果进行遍历及相邻元素比对。
五、利用对象的属性不能相同的特点进行去重
六、利用includes
function unique(arr) {
var obj = {};
return arr.filter(function(item, index, arr){
return obj.hasOwnProperty(typeof item + item) ? false : (obj[typeof item + item] = true)
})
}
利用hasOwnProperty 判断是否存在对象属性。
八、利用filter
九、利用递归去重
十、利用Map数据结构去重
创建一个空Map数据结构,遍历需要去重的数组,把数组的每一个元素作为key存到Map中。由于Map中不会出现相同的key值,所以最终得到的就是去重后的结果。
十一、利用reduce
十二、[...new Set(arr)]
有问题可以私信小编:web
avaScript 中的数组是一种非常灵活且功能丰富的数据结构,它允许您存储有序的数据集合。在这篇文章中将分享一些常用的 JavaScript 数组操作方法,并提供具体的代码示例。无论您是初学者还是有一定经验的开发者,这些操作都是您日常开发中不可或缺的工具。
在 JavaScript 中,创建数组有多种方法:
// 字面量方式
let fruits = ['apple', 'banana', 'cherry'];
// 使用构造函数
let numbers = new Array(1, 2, 3, 4, 5);
数组元素可以通过索引来访问和修改,索引是从 0 开始的数字。
let fruits = ['apple', 'banana', 'cherry'];
// 访问第一个元素
console.log(fruits[0]); // 输出:apple
// 修改第二个元素
fruits[1] = 'blueberry';
console.log(fruits); // 输出:['apple', 'blueberry', 'cherry']
遍历数组元素是处理数组时的常见需求。我们可以使用 for 循环或数组的 forEach 方法。
let numbers = [1, 2, 3, 4, 5];
// 使用 for 循环
for (let i = 0; i < numbers.length; i++) {
console.log(numbers[i]);
}
// 使用 forEach 方法
numbers.forEach(function(number) {
console.log(number);
});
JavaScript 提供了多种方法来添加或删除数组中的元素。
let colors = ['red', 'green', 'blue'];
// 添加元素到数组的末尾
colors.push('yellow');
// 删除数组末尾的元素
colors.pop();
// 添加元素到数组的开头
colors.unshift('purple');
// 删除数组开头的元素
colors.shift();
当需要查找数组中的元素时,可以使用 indexOf 或 includes 方法。
let pets = ['cat', 'dog', 'bird'];
// 查找元素的索引
let index = pets.indexOf('dog');
console.log(index); // 输出:1
// 检查数组是否包含某个元素
let hasCat = pets.includes('cat');
console.log(hasCat); // 输出:true
数组的 sort 方法可以对数组进行排序,而 reverse 方法则可以将数组中的元素顺序反转。
let numbers = [3, 1, 4, 1, 5, 9];
// 排序
numbers.sort();
console.log(numbers); // 输出:[1, 1, 3, 4, 5, 9]
// 反转
numbers.reverse();
console.log(numbers); // 输出:[9, 5, 4, 3, 1, 1]
使用 concat 方法可以合并数组,而 join 方法可以将数组元素拼接成字符串。
let even = [2, 4, 6];
let odd = [1, 3, 5];
// 合并数组
let numbers = even.concat(odd);
console.log(numbers); // 输出:[2, 4, 6, 1, 3, 5]
// 拼接数组元素为字符串
let numbersStr = numbers.join(', ');
console.log(numbersStr); // 输出:"2, 4, 6, 1, 3, 5"
JavaScript ES6 引入了一些高阶数组方法,让处理数组变得更加简洁和高效。
let numbers = [1, 2, 3, 4, 5];
// map 方法
let squares = numbers.map(x => x * x);
console.log(squares); // 输出:[1, 4, 9, 16, 25]
// filter 方法
let evens = numbers.filter(x => x % 2 === 0);
console.log(evens); // 输出:[2, 4]
// reduce 方法
let sum = numbers.reduce((acc, x) => acc + x, 0);
console.log(sum); // 输出:15
JavaScript 数组是一种非常强大的数据结构,提供了丰富的方法来处理数据。掌握这些数组操作对于前端开发是非常重要的。希望这篇文章能帮助你更好地理解和使用 JavaScript 数组。记得多练习,因为实践是学习的最好方式!
常扒别人网站文章的坑们;我是指那种批量式采集的压根不看内容的;少不了都会用到删除html标签的函数;这里介绍3种不同用途上的方法;
$str='<div><p>这里是p标签</p><img src="" alt="这里是img标签"><a href="">这里是a标签</a><br></div>';
1:删除全部或者保留指定html标签php自带的函数strip_tags即可满足要求,使用方法:strip_tags(string,allow);string:需要处理的字符串;allow:需要保留的指定标签,可以写多个;
echo strip_tags($str,'<p><a>');//输出:<p>这里是p标签</p><a href="">这里是a标签</a>
此函数的优点是简单粗暴;但是缺点也很明显;如果有一大堆标签;而我只是想删除指定的某一个;那要写很多需要保留的标签;所以有了第二个方法;
2:删除指定的html标签使用方法:strip_html_tags($tags,$str);$tags:需要删除的标签(数组格式)$str:需要处理的字符串;
function strip_html_tags($tags,$str){
$html=array();
foreach ($tags as $tag) {
$html[]="/(<(?:\/".$tag."|".$tag.")[^>]*>)/i";
}
$data=preg_replace($html, '', $str);
return $data;
}
echo strip_html_tags(array('p','img'),$str);
//输出:<div>这里是p标签<a href="">这里是a标签</a><br></div>;
3:删除标签和标签的内容使用方法:strip_html_tags($tags,$str);$tags:需要删除的标签(数组格式)$str:需要处理的字符串;
function strip_html_tags($tags,$str){
$html=array();
foreach ($tags as $tag) {
$html[]='/<'.$tag.'.*?>[\s|\S]*?<\/'.$tag.'>/';
$html[]='/<'.$tag.'.*?>/';
}
$data=preg_replace($html,'',$str);
return $data;
}
echo strip_html_tags(array('a','img'),$str);
//输出<div><p>这里是p标签</p><br></div>
很多网站文章里面会带上网站名和链接;这个函数就是专治这种;别拿这个函数采集本站啊;不然保证不打死你;4:终极函数,删除指定标签;删除或者保留标签内的内容;使用方法:strip_html_tags($tags,$str,$content);$tags:需要删除的标签(数组格式)$str:需要处理的字符串;$ontent:是否删除标签内的内容 0保留内容 1不保留内容
*请认真填写需求信息,我们会在24小时内与您取得联系。