、利用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小時內與您取得聯系。