web前端:經常使用的js語法

經常使用的js語法

一、提取數組對象中的某個屬性值,並返回一個新數組javascript

//實例一:單純的提取數組對象中的某個屬性值,返回一個數組var detailList = [
        {          id:1,          name:'張三'
        },
        {          id:2,          name:'李四'
        },
        {          id:3,          name:'王五'
        },
      ]var result = detailList.map(function(item) {               return item.name;
  });console.log(result, '新數組');//['張三','李四','王五']//實例二:提取數組對象中的某個屬性值,並返回一個帶有屬性名的新數組var detailList = [
        {          id:1,          name:'張三'
        },
        {          id:2,          name:'李四'
        },
        {          id:3,          name:'王五'
        },
      ]var result = detailList.map(item =>({    bossName:item.name,    bossId:item.id
}))console.log(result, '新數組');//[{bossName:'張三',bossId:1},{bossName:'李四',bossId:2},{bossName:'王五',bossId:3}]1234567891011121314151617181920212223242526272829303132333435363738394041

對了,在這裏說一下,我目前是在職web前端開發,若是你如今正在學習前端,瞭解前端,渴望成爲一名合格的web前端開發工程師,在入門學習前端的過程中有碰見任何關於學習方法,學習路線,學習效率等方面的問題,均可以隨時關注並私信我:前端,我都會根據你們的問題給出針對性的建議,缺少基礎入門的視頻教程也能夠直接來找我,我這邊有最新的web前端基礎精講視頻教程, 還有我作web前端技術這段時間整理的一些學習手冊,面試題,開發工具,PDF文檔書籍教程,均可以直接分享給你們。php


二、判斷數組對象中是否存在某個屬性值前端

var list = [
    {
          id:1,
          name:'張三'
        },
        {
          id:2,
          name:'李四'
        },
        {
          id:3,
          name:'王五'
        },
]var result = list.some(function (item) {                if(item.name==='李四'){                    return true
                }
              })

  console.log(result) //true/false123456789101112131415161718192021

三、根據數組對象中的某個屬性值,取它整個對象java

var list = [
    {          id:1,          name:'張三'
        },
        {          id:2,          name:'李四'
        },
        {          id:3,          name:'王五'
        },
]  var result = list.find(item=>item.name==='李四')  var id = result && result.id  console.log(id) //2123456789101112131415161718

四、替換數組對象中的某個屬性值web

data:[
	{name: 'xxx', status: 0},
	{name: 'xxx', status: 1},
	{name: 'xxx', status: 0},
	{name: 'xxx', status: 1},
]

data.forEach(item => {	if (item.status === 0) {
		// 'status'爲屬性名,'非活動'爲修改後的內容 
		item.status = '非活動'
	} else if (item.status === 1) {
		item.status = '活動'
	}
})12345678910111213141516

五、向數組對象中添加屬性面試

//實例:適合作購物車勾選商品的勾選狀態//接口返回的商品列表數據listlet arr = this.listlet curData = []
arr.forEach((item, index) => {
    curData.push(Object.assign({}, item, { 'selected': true }))
  })this.list = []this.list = curData// console.log(this.list, '新增屬性')12345678910

下面說說理論知識:數組

find()返回經過測試的數組的第一個元素的值網絡

在第一次調用 callback 函數時會肯定元素的索引範圍,所以在 find 方法開始執行以後添加到數組的新元素將不會被 callback 函數訪問到。若是數組中一個還沒有被callback函數訪問到的元素的值被callback函數所改變,那麼當callback函數訪問到它時,它的值是將是根據它在數組中的索引所訪問到的當前值。被刪除的元素仍舊會被訪問到。ide

語法:函數

array.find(function(value, index, arr),thisValue)1

value:必須,表明當前元素,其餘四個參數都是可選,index代表當前索引值,arr表明當前的數組,thisValue表明傳遞給函數的值,通常用this值,若是這個參數爲空,undefined會傳遞給this

返回值:返回符合測試條件的第一個數組元素的值,若是沒有符合條件的則返回undefined

 var arr = [1,2,3,4,5,6,7]; var ar = arr.find(function(elem){     return elem>5;
 }); console.log(ar);//6console.log(arr);//[1,2,3,4,5,6,7]123456

find()方法爲數組中的每一個元素都調用一次函數執行,當數組中的元素在測試條件時返回truefind()返回符合條件的元素,以後的值不會再執行函數。若是沒有符合條件的元素則返回undefined

filter():建立一個新數組,新數組中的元素是經過檢查指定數組中符合條件的全部元素

filter遍歷的元素範圍在第一次調用 callback以前就已經肯定了。在調用filter以後被添加到數組中的元素不會被filter遍歷到。若是已經存在的元素被改變了,則他們傳入callback 的值是 filter 遍歷到它們那一刻的值。被刪除或歷來未被賦值的元素不會被遍歷到。

語法:

array.filter(function(value, index, arr),thisValue)1

value:必須,表明當前元素,其餘四個參數都是可選,index表明當前索引值,arr表明當前的數組,thisValue表明傳遞給函數的值,通常用this值,若是這個參數爲空,undefined會傳遞給this值

返回值:返回數組,包含了符合條件的全部元素,若是沒有符合條件的則返回空數組

 var arr = [1,2,3,4,5,6,7]; var ar = arr.filter(function(elem){     return elem>5;
 }); console.log(ar);//[6,7]console.log(arr);//[1,2,3,4,5,6,7]123456

map():返回一個新數組,數組中的元素爲原始數組元素調用函數處理後的值,map()方法按照原始數組元素順序依次處理元素

map方法會給原數組中的每一個元素都按順序調用一次callback函數,callback每次執行後的返回值(包括undefined)組合起來造成一個新數組。callback函數只會在有值的索引上被調用,那些歷來沒被賦過值或者使用delete刪除的索引則不會被調用。

使用map方法處理數組時,數組元素的範圍是在callback方法第一次調用以前就已經肯定了。在map方法執行的過程當中,原數組中新增長的元素將不會被callback訪問到,若已經存在的元素被改變或刪除了,則他們傳遞到callback的值是map方法遍歷到他們的那一刻的值,而被刪除的元素將不會被訪問到。

語法:

array.map(function(value, index, arr),thisValue)1

value:必須,表明當前元素,其餘四個參數都是可選,index表明當前索引值,arr表明當前的數組,thisValue表明傳遞給函數的值,通常用this值,若是這個參數爲空,undefined會傳遞給this值

返回值:返回一個新數組,數組中的元素爲原始數組元素調用函數處理後的值

 var arr = [1,2,3,4,5,6,7]; var ar = arr.map(function(elem){    return elem*4;
 }); console.log(ar);//[4, 8, 12, 16, 20, 24, 28]console.log(arr);//[1,2,3,4,5,6,7]123456

forEach():用於調用數組每一個元素,並將元素傳遞給回調函數(注意沒有辦法跳出或終止forEach語句,除非拋出異常)

forEach 遍歷的範圍在第一次調用 callback前就會肯定。調用forEach 後添加到數組中的項不會被callback訪問到。若是已經存在的值被改變,則傳遞給 callback 的值是 forEach遍歷到他們那一刻的值。已刪除的項不會被遍歷到

語法:

array.forEach(function(value, index, arr),thisValue)
1

value:必須,表明當前元素,其餘四個參數都是可選,index表明當前索引值,arr表明當前的數組,thisValue表明傳遞給函數的值,通常用this值,若是這個參數爲空,undefined會傳遞給this值

返回值:undefined

 var arr = [1,2,3,4,5,6,7]; var sum = 0; var ar = arr.forEach(function(elem){
    sum+=elem*4;
 }); console.log(ar);//undefined
 console.log(arr);//[1,2,3,4,5,6,7]
 console.log(sum);//11212345678

forEach()返回值爲undefined,裏面即使有return語句,返回值依然是undefined

嗯、如今總結一下

從上面的內容咱們能夠看出,上面的四個語法以及參數的意義是同樣的,並且都不會對空數組進行檢測,也不會改變原始數組

如今說說各自的意義:

find()方法主要用來返回數組中符合條件的第一個元素(沒有的話,返回undefined)

filter()方法主要用來篩選數組中符合條件的全部元素,而且放在一個新數組中,若是沒有,返回一個空數組

map()方法主要用來對數組中的元素調用函數進行處理,而且把處理結果放在一個新數組中返回(若是沒有返回值,新數組中的每個元素都爲undefined

forEach()方法也是用於對數組中的每個元素執行一次回調函數,但它沒有返回值(或者說它的返回值爲undefined,即使咱們在回調函數中寫了return語句,返回值依然爲undefined

【免責聲明:本文圖片及文字信息均由千鋒重慶web前端培訓小編轉載自網絡,旨在分享提供閱讀,版權歸原做者全部,若有侵權請聯繫咱們進行刪除。】

相關文章
相關標籤/搜索