Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
、利用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", {}, {}]
不考慮兼容性,這種去重的方法代碼最少。這種方法還無(wú)法去掉“{}”空對(duì)象,后面的高階方法會(huì)添加去掉“{}”空對(duì)象。
二、利用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]){ //第一個(gè)等同于第二個(gè),splice方法刪除第二個(gè)
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", {…}, {…}]
雙層循環(huán),外層循環(huán)元素,內(nèi)層循環(huán)時(shí)比較值。值相同時(shí),則刪去這個(gè)值
三、利用indexOf去重
新建一個(gè)空的結(jié)果數(shù)組,for 循環(huán)原數(shù)組,判斷結(jié)果數(shù)組是否存在當(dāng)前元素,如果有相同的值則跳過(guò),不相同則push進(jìn)數(shù)組。
四、利用sort()
利用sort()排序方法,然后根據(jù)排序后的結(jié)果進(jìn)行遍歷及相鄰元素比對(duì)。
五、利用對(duì)象的屬性不能相同的特點(diǎn)進(jìn)行去重
六、利用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 判斷是否存在對(duì)象屬性。
八、利用filter
九、利用遞歸去重
十、利用Map數(shù)據(jù)結(jié)構(gòu)去重
創(chuàng)建一個(gè)空Map數(shù)據(jù)結(jié)構(gòu),遍歷需要去重的數(shù)組,把數(shù)組的每一個(gè)元素作為key存到Map中。由于Map中不會(huì)出現(xiàn)相同的key值,所以最終得到的就是去重后的結(jié)果。
十一、利用reduce
十二、[...new Set(arr)]
有問(wèn)題可以私信小編:web
avaScript 中的數(shù)組是一種非常靈活且功能豐富的數(shù)據(jù)結(jié)構(gòu),它允許您存儲(chǔ)有序的數(shù)據(jù)集合。在這篇文章中將分享一些常用的 JavaScript 數(shù)組操作方法,并提供具體的代碼示例。無(wú)論您是初學(xué)者還是有一定經(jīng)驗(yàn)的開(kāi)發(fā)者,這些操作都是您日常開(kāi)發(fā)中不可或缺的工具。
在 JavaScript 中,創(chuàng)建數(shù)組有多種方法:
// 字面量方式
let fruits = ['apple', 'banana', 'cherry'];
// 使用構(gòu)造函數(shù)
let numbers = new Array(1, 2, 3, 4, 5);
數(shù)組元素可以通過(guò)索引來(lái)訪問(wèn)和修改,索引是從 0 開(kāi)始的數(shù)字。
let fruits = ['apple', 'banana', 'cherry'];
// 訪問(wèn)第一個(gè)元素
console.log(fruits[0]); // 輸出:apple
// 修改第二個(gè)元素
fruits[1] = 'blueberry';
console.log(fruits); // 輸出:['apple', 'blueberry', 'cherry']
遍歷數(shù)組元素是處理數(shù)組時(shí)的常見(jiàn)需求。我們可以使用 for 循環(huán)或數(shù)組的 forEach 方法。
let numbers = [1, 2, 3, 4, 5];
// 使用 for 循環(huán)
for (let i = 0; i < numbers.length; i++) {
console.log(numbers[i]);
}
// 使用 forEach 方法
numbers.forEach(function(number) {
console.log(number);
});
JavaScript 提供了多種方法來(lái)添加或刪除數(shù)組中的元素。
let colors = ['red', 'green', 'blue'];
// 添加元素到數(shù)組的末尾
colors.push('yellow');
// 刪除數(shù)組末尾的元素
colors.pop();
// 添加元素到數(shù)組的開(kāi)頭
colors.unshift('purple');
// 刪除數(shù)組開(kāi)頭的元素
colors.shift();
當(dāng)需要查找數(shù)組中的元素時(shí),可以使用 indexOf 或 includes 方法。
let pets = ['cat', 'dog', 'bird'];
// 查找元素的索引
let index = pets.indexOf('dog');
console.log(index); // 輸出:1
// 檢查數(shù)組是否包含某個(gè)元素
let hasCat = pets.includes('cat');
console.log(hasCat); // 輸出:true
數(shù)組的 sort 方法可以對(duì)數(shù)組進(jìn)行排序,而 reverse 方法則可以將數(shù)組中的元素順序反轉(zhuǎn)。
let numbers = [3, 1, 4, 1, 5, 9];
// 排序
numbers.sort();
console.log(numbers); // 輸出:[1, 1, 3, 4, 5, 9]
// 反轉(zhuǎn)
numbers.reverse();
console.log(numbers); // 輸出:[9, 5, 4, 3, 1, 1]
使用 concat 方法可以合并數(shù)組,而 join 方法可以將數(shù)組元素拼接成字符串。
let even = [2, 4, 6];
let odd = [1, 3, 5];
// 合并數(shù)組
let numbers = even.concat(odd);
console.log(numbers); // 輸出:[2, 4, 6, 1, 3, 5]
// 拼接數(shù)組元素為字符串
let numbersStr = numbers.join(', ');
console.log(numbersStr); // 輸出:"2, 4, 6, 1, 3, 5"
JavaScript ES6 引入了一些高階數(shù)組方法,讓處理數(shù)組變得更加簡(jiǎn)潔和高效。
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 數(shù)組是一種非常強(qiáng)大的數(shù)據(jù)結(jié)構(gòu),提供了豐富的方法來(lái)處理數(shù)據(jù)。掌握這些數(shù)組操作對(duì)于前端開(kāi)發(fā)是非常重要的。希望這篇文章能幫助你更好地理解和使用 JavaScript 數(shù)組。記得多練習(xí),因?yàn)閷?shí)踐是學(xué)習(xí)的最好方式!
常扒別人網(wǎng)站文章的坑們;我是指那種批量式采集的壓根不看內(nèi)容的;少不了都會(huì)用到刪除html標(biāo)簽的函數(shù);這里介紹3種不同用途上的方法;
$str='<div><p>這里是p標(biāo)簽</p><img src="" alt="這里是img標(biāo)簽"><a href="">這里是a標(biāo)簽</a><br></div>';
1:刪除全部或者保留指定html標(biāo)簽php自帶的函數(shù)strip_tags即可滿足要求,使用方法:strip_tags(string,allow);string:需要處理的字符串;allow:需要保留的指定標(biāo)簽,可以寫(xiě)多個(gè);
echo strip_tags($str,'<p><a>');//輸出:<p>這里是p標(biāo)簽</p><a href="">這里是a標(biāo)簽</a>
此函數(shù)的優(yōu)點(diǎn)是簡(jiǎn)單粗暴;但是缺點(diǎn)也很明顯;如果有一大堆標(biāo)簽;而我只是想刪除指定的某一個(gè);那要寫(xiě)很多需要保留的標(biāo)簽;所以有了第二個(gè)方法;
2:刪除指定的html標(biāo)簽使用方法:strip_html_tags($tags,$str);$tags:需要?jiǎng)h除的標(biāo)簽(數(shù)組格式)$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標(biāo)簽<a href="">這里是a標(biāo)簽</a><br></div>;
3:刪除標(biāo)簽和標(biāo)簽的內(nèi)容使用方法:strip_html_tags($tags,$str);$tags:需要?jiǎng)h除的標(biāo)簽(數(shù)組格式)$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標(biāo)簽</p><br></div>
很多網(wǎng)站文章里面會(huì)帶上網(wǎng)站名和鏈接;這個(gè)函數(shù)就是專治這種;別拿這個(gè)函數(shù)采集本站啊;不然保證不打死你;4:終極函數(shù),刪除指定標(biāo)簽;刪除或者保留標(biāo)簽內(nèi)的內(nèi)容;使用方法:strip_html_tags($tags,$str,$content);$tags:需要?jiǎng)h除的標(biāo)簽(數(shù)組格式)$str:需要處理的字符串;$ontent:是否刪除標(biāo)簽內(nèi)的內(nèi)容 0保留內(nèi)容 1不保留內(nèi)容
*請(qǐng)認(rèn)真填寫(xiě)需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。