亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Object.keys()、Object.values()、Object.entries()用法總結

 更新時間:2023年04月07日 15:54:58   作者:前端白雪  
本文主要介紹了Object.keys()、Object.values()、Object.entries()用法總結,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

Object.keys()

一、官方解釋

Object.keys() 方法會返回一個由一個給定對象的自身可枚舉屬性組成的數組,數組中屬性名的排列順序和使用 for...in 循環(huán)遍歷該對象時返回的順序一致 。如果對象的鍵-值都不可枚舉,那么將返回由鍵組成的數組。

二、語法

Object.keys(obj)
參數:要返回其枚舉自身屬性的對象
返回值:一個表示給定對象的所有可枚舉屬性的字符串數組

三、處理對象,返回可枚舉的屬性數組

            let person={
                name:'一只流浪的kk',
                age:20,
                eat:function(){}
            }
            console.log(Object.keys(person));//    ['name','age','eat']

四、處理數組,返回索引值數組

 let arr=[1,2,3,4,5];
 console.log(Object.keys(arr));//['0','1','2','3','4','5']

五、處理字符串,返回索引值數組

let str='hello';
console.log(Object.keys(str));//['0','1','2','3','4']

六、實用技巧

 let person={
                   name:'一只流浪的kk',
                   age:18,
                   eat:function(){
                       
                   }
           }
           Object.keys(person).map((key)=>{
                   person[key];//獲得屬性對應的值,可以進行其它處理
           })

Object.values()

一、返回一個數組,成員是參數對象自身的(不含繼承的)所有可遍歷屬性的鍵值

let obj = {
    foo : "bar",
    baz : 20
};
console.log(Object.values(obj));  // ["bar", 20]

二、返回數組的成員順序,與屬性的遍歷部分介紹的排列規(guī)則一致

const obj = {100 : "a", 2 : "b", 7 : "c"};
console.log(Object.values(obj));   //["b", "c", "a"]

三、Object.values()只會遍歷對象自身的可遍歷屬性

const obj = Object.create({},{p : {value : 10}});
console.log(Object.values(obj));    
console.log(Object.getOwnPropertyDescriptors(obj)); // []

Object.create方法的第二個參數添加的對象屬性(屬性p),如果不顯式聲明,默認是不可遍歷的,因為p的屬性描述對象的enumerable默認是false,Object.values不會返回這個屬性。
因此只要把enumerable改成true,Object.values就會返回屬性p的值。

const obj = Object.create({},{p:{
     value : 10,
     enumerable : true,
     configurable : true,
     writable : true,
}})
console.log(Object.values(obj));    //[10]

四、Object.values會過濾屬性名為 Symbol 值的屬性

//如果Object.values方法的參數是一個字符串,會返回各個字符組成的一個數組。
Object.values({ [Symbol()]: 123, foo: 'abc' });
console.log(Object.values('foo'));  //["f", "o", "o"]

五、如果參數不是對象,Object.values會先將其轉為對象

console.log(Object.values(42));  // []
console.log(Object.values(true));  // []
console.log(Object.values(undefined));   //error
console.log(Object.values(null));   //error

Object.entries()

一、Object.entries方法返回一個數組,成員是參數對象自身的(不含繼承的)所有可遍歷(enumerable)屬性的鍵值對數組

var obj = { foo: 'bar', baz: 42 };
console.log(Object.entries(obj));

二、如果原對象的屬性名是一個 Symbol 值,該屬性會被省略

console.log(Object.entries({ [Symbol()]: 123, foo: 'abc' }));  // [ [ 'foo', 'abc' ] ]

三、遍歷對象的屬性

let obj = {
    one : 1,
    two : 2,
}
for(let [k , v] of Object.entries(obj)){
     console.log(`${JSON.stringify(k)} : ${JSON.stringify(v)}`);
}

四、將對象轉為真正的Map結構

const obj = {foo : "bar", baz : 10};
const map = new Map(Object.entries(obj));
console.log(map); 

五、實現Object.entries方法

const entries = (obj) => {
     let result = [];
     const objType = typeof(obj);
     if(obj === undefined || obj === null){
          throw new TypeError();
     }
     if(objType === "number" || objType === "boolean"){
         return [];
     }
     for(let k of Object.keys(obj)){
         result.push([k,obj[k]]);
     }
     return result
}

 到此這篇關于Object.keys()、Object.values()、Object.entries()用法總結的文章就介紹到這了,更多相關Object.keys() Object.values() Object.entries()內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • javascript中數組的冒泡排序使用示例

    javascript中數組的冒泡排序使用示例

    數組的冒泡排序很實用,不過還是有些同學們不會,于是在本文為大家詳細介紹下,感興趣的朋友不要錯過
    2013-12-12
  • js 處理數組重復元素示例代碼

    js 處理數組重復元素示例代碼

    數組重復元素如何處理,這是在項目實戰(zhàn)中經常遇到的,針對這個問題,下文給出詳細解決方法,希望對大家有所幫助
    2013-12-12
  • js獲取ajax返回值代碼

    js獲取ajax返回值代碼

    這篇文章主要介紹了js如何獲取ajax的返回值,需要的朋友可以參考下
    2014-04-04
  • JavaScript 程序循環(huán)結構詳解

    JavaScript 程序循環(huán)結構詳解

    這篇文章主要為大家介紹了JavaScript 程序循環(huán)結構,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • 使用Webpack打包的流程分析

    使用Webpack打包的流程分析

    Webpack 是一個前端資源加載/打包工具。它將根據模塊的依賴關系進行靜態(tài)分析,然后將這些模塊按照指定的規(guī)則生成對應的靜態(tài)資源,這篇文章主要介紹了使用Webpack打包的操作方法,需要的朋友可以參考下
    2022-12-12
  • JavaScript 中級筆記 第四章 閉包

    JavaScript 中級筆記 第四章 閉包

    前面已經講解了 引用,函數重載,作用域和上下文,接下來,講解JavaScript中另一個重要的知識——閉包。
    2009-09-09
  • 基于Day.js更優(yōu)雅的處理JavaScript中的日期

    基于Day.js更優(yōu)雅的處理JavaScript中的日期

    Day.js它能夠幫助我們處理JavaScript中的日期,本文就詳細的介紹一下Day.js的具體使用,可以更簡單的處理JavaScript中的日期和時間
    2021-09-09
  • Javascript 網頁黑白效果實現代碼(兼容IE/FF等)

    Javascript 網頁黑白效果實現代碼(兼容IE/FF等)

    今天在網上看到有人推薦的一個不錯的方法,試了一下,效果還是可以的,可以自定義讓網頁的某一部分變成灰度顏色(黑白)。
    2010-04-04
  • JavaScript實現給數字添加千位分隔符

    JavaScript實現給數字添加千位分隔符

    這篇文章主要為大家詳細介紹了JavaScript如何實現給數字添加千位分隔符,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-11-11
  • Javascript實現顏色rgb與16進制轉換的方法

    Javascript實現顏色rgb與16進制轉換的方法

    這篇文章主要介紹了Javascript實現顏色rgb與16進制轉換的方法,實例分析了顏色值轉換的常用技巧與使用方法,非常具有實用價值,需要的朋友可以參考下
    2015-04-04

最新評論