明輝手游網(wǎng)中心:是一個免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

前端常用的JavaScript設(shè)置(代碼案例)

[摘要]本篇文章給大家?guī)淼膬?nèi)容是關(guān)于前端常用的JavaScript操作(代碼實例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。1.刪除字符串中指定的一段字符例:刪除"10km"中的kmvar str = "10km"//方法一: var res...
本篇文章給大家?guī)淼膬?nèi)容是關(guān)于前端常用的JavaScript操作(代碼實例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

1.刪除字符串中指定的一段字符

例:刪除"10km"中的km

var str = "10km"

//方法一:
var res = str.replace('km', '')

//方法二:
var res = str.split('km').join('')
//join方法不傳參默認(rèn)使用逗號作為分隔符

2.數(shù)組去重

var arr = [1, 2, 3, 1, 2]

//方法一:
var res = [...new Set(arr)]

//方法二:
var res = Array.from(new Set(arr))

//方法三:
var res = [];
for (var i in arr) {
	if (res.indexOf(arr[i] === -1) {
		res.push(arr[i])
	}
}

//方法四:
var res = []
arr.map((item, index) => {
	if (res.indexOf(item) === -1){
		res.push(item)
	}
})

附:Array.from()的用法:

Array.from(arr, mapfn,thisArg):用于將兩類可以把對象轉(zhuǎn)換為真正的數(shù)組。

  1. 類似數(shù)組的對象(必須有l(wèi)ength屬性)

  2. 可遍歷的對象(部署了Iterator接口的,String,ES6新增的Map和Set)。

參數(shù):第一個是數(shù)組,必傳;第二個是一個函數(shù)(類似map函數(shù)),對數(shù)組元素進(jìn)行操作后再返回數(shù)組,可選;第三個是對于this關(guān)鍵字的指向,可選。

var obj1 = {
	0: 'a',
	1: 'b',
	2: 'c'
}
var arr1 = Array.from(obj1)
console.log(arr1) // []

/* 1. 類數(shù)組對象,具有l(wèi)ength屬性,而普通對象是沒有l(wèi)ength屬性的。*/
/* 2. 類數(shù)組對象的屬性名必須為非負(fù)整數(shù),對象中的屬性名會被當(dāng)做字符串處理。*/

var obj2 = { 
	0: 'a',
	1: 'b',
	2: 'c',
	length: 2
}
var arr2 = Array.from(obj2)
console.log(arr2) // ["a", "b"]

var obj3 = {
	0: 'a',
	1: 'b',
	2: 'c',
	length: 4
}
var arr3 = Array.from(obj3)
console.log(arr3) // ["a", "b", "c", undefined]

var obj4 = {
	0: 'a',
	1: 'b',
	2: 'c',
	length: 3
}
var arr4 = Array.from(obj4, item => item + 1)
console.log(arr4) // ["a1", "b1", "c1"]

var obj5 = {
	"1": "a",
	"0": "b",
	length: 2
}
var arr5 = Array.from(obj5)
console.log(arr5) // ["b", "a"]

3.將偽數(shù)組對象轉(zhuǎn)化為數(shù)組

var obj = {
	0: 'a',
	1: 'b',
	length: 2
}
//方法一:
Array.from(obj)

//方法二:
Array.prototype.slice.call(obj) 

//方法三:
Array.prototype.concat.apply([], obj)

//方法四:
Array.prototype.splice.call(obj, 0) // 返回被刪除的元素,原對象obj會被破壞掉
console.log(obj) // obj: {length: 0}

// 上述的Array.prototype 均可用[]代替

4.數(shù)組或?qū)ο蟮纳羁截?/h4>
//方法一:
JSON.parse(JSON.stringify(obj))

//方法二:遞歸遍歷
function clone (obj) {
  var res = obj.constructor === Array ? [] : {}
  for (var i in obj) {
    res[i] = typeof obj[i] === 'object' ? clone(obj[i]) : obj[i] // 即obj[i]為數(shù)組或?qū)ο,繼續(xù)拷貝
  }
  return res
}

//附:數(shù)組淺拷貝
var arr = ['a', ['b', ['c']]]

//1.使用slice()
var res = arr.slice(0)
console.log(res) // ['a', ['b', ['c']]]
res[1][1] = 'b'
console.log(res) // ['a', ['b', ['b']]]
console.log(arr) // ['a', ['b', ['b']]]

//2.使用concat()
var arr = ['a', ['b', ['c']]]

var res = [].concat(arr)
res[1][1] = 'b'
console.log(res) // ['a', ['b', ['b']]]
console.log(arr) // ['a', ['b', ['b']]]

//Object.assign()也只能實現(xiàn)對象的淺拷貝,它只是一級屬性復(fù)制,比淺拷貝多深拷貝了一層
var obj = {a: "a", b: {c: "d"}}
var res = Object.assign({}, obj)
res.b.c= "e"
console.log(res) // {a: "a", b: {c: "e"}}
console.log(obj) // {a: "a", b: {c: "e"}}

5.沒有塊級作用域?qū)е聝?nèi)層變量覆蓋外層變量。

var date = new Date().getDate();
function f(){
	console.log(date);
	if(false){
	    var date = 0;//變量提升
   }
}
f();//undefined

6.ES6中標(biāo)簽?zāi)0宓挠梅ǎ?/h4>
let a = 1;
let b = 2;
function tag(arr, value1, value2){
    console.log(arr); //["hello ", " world ", ""]
    console.log(value1); //3
    console.log(value2); //2
}
tag`hello ${a + b} world ${a * b}`;
/**
如果函數(shù)名后的模板字符串中沒有變量,則直接將其作為函數(shù)參數(shù)調(diào)用。
如果存在變量則先將模板字符串處理成多個參數(shù),再調(diào)用函數(shù)。

處理規(guī)則:
1.默認(rèn)該函數(shù)第一個參數(shù)為數(shù)組,該數(shù)組的成員是模板字符串中那些沒有變量替換的部分。
2.變量替換只發(fā)生在數(shù)組的第一個成員與第二個成員之間、第二個成員與第三個成員之間。
以此類推,故arr中第三個成員為"",原因是${a * b}的變量替換發(fā)生在第二個成員與第三個成員之間,
所以必須存在第三個成員。
3.函數(shù)的其他參數(shù),都是模板字符串各個變量被替換后的值。

函數(shù)形如:
function tag(stringArr, ...value){}
*/

以上就是對的全部介紹,如果您想了解更多有關(guān)HTML視頻教程,請關(guān)注PHP中文網(wǎng)。

以上就是前端常用的JavaScript操作(代碼實例)的詳細(xì)內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!


網(wǎng)站建設(shè)是一個廣義的術(shù)語,涵蓋了許多不同的技能和學(xué)科中所使用的生產(chǎn)和維護(hù)的網(wǎng)站。