摘要:獲取對(duì)象長(zhǎng)度和遍歷對(duì)象的鍵的所有方法關(guān)于遍歷,工具庫有很好的擴(kuò)展可以非常方便地返回一個(gè)自身所有的,但不包含從原型鏈繼承下來的除了自身的,還包含從原型鏈繼承下來的獲取對(duì)象長(zhǎng)度和方法返回一個(gè)給定對(duì)象自己的所有可枚舉屬性值的數(shù)組,值的順序與使用循
獲取對(duì)象長(zhǎng)度和keys
遍歷對(duì)象的鍵的所有方法
關(guān)于遍歷keys,工具庫lodash有很好的擴(kuò)展
https://lodash.com/docs/4.17....
function Foo() { this.a = 1; this.b = 2; } Foo.prototype.c = 3; _.keys(new Foo); // => ["a", "b"] (iteration order is not guaranteed) //可以非常方便地返回一個(gè)object自身所有的key,但不包含從原型鏈繼承下來的 _.keys("hi"); // => ["0", "1"]
function Foo() { this.a = 1; this.b = 2; } Foo.prototype.c = 3; _.keysIn(new Foo); // => ["a", "b", "c"] (iteration order is not guaranteed) //除了object自身的key,還包含從原型鏈繼承下來的獲取對(duì)象長(zhǎng)度 和 values
Object.values()方法返回一個(gè)給定對(duì)象自己的所有可枚舉屬性值的數(shù)組,值的順序與使用for...in循環(huán)的順序相同 ( 區(qū)別在于 for-in 循環(huán)枚舉原型鏈中的屬性 )。
var obj = { foo: "bar", baz: 42 }; console.log(Object.values(obj)); // ["bar", 42] // 類數(shù)組對(duì)象 var obj = { 0: "a", 1: "b", 2: "c" }; console.log(Object.values(obj)); // ["a", "b", "c"] 注意: var obj = { 0: "a", 1: "b", 2: { 3: "c" , 4: "d" } }; console.log(Object.values(obj)); // ["a", "b", {…}] 內(nèi)置的對(duì)象沒有擴(kuò)展成數(shù)組 // 隨機(jī)鍵值的類數(shù)組對(duì)象 var an_obj = { 100: "a", 2: "b", 7: "c" }; console.log(Object.values(an_obj)); // ["b", "c", "a"] // getFoo 是不可枚舉屬性 var my_obj = Object.create({}, { getFoo: { value: function() { return this.foo; } } }); my_obj.foo = "bar"; console.log(Object.values(my_obj)); // ["bar"] // 參數(shù)是非對(duì)象會(huì)轉(zhuǎn)變成對(duì)象 console.log(Object.values("foo")); // ["f", "o", "o"]_values / _valuesIn
同樣的,lodash對(duì)此也有擴(kuò)展
https://lodash.com/docs/4.17....
把object的每個(gè)key-value來個(gè)交換,key變成value,value變成key
此實(shí)現(xiàn)其實(shí)來自lodash的 _invert()源碼,
https://lodash.com/docs/4.17....
注意兩者區(qū)別: 原對(duì)象變/ 不變
通常我們會(huì)用
function isObject(arg) { return typeof arg === "object" && arg !== null; }
但是這樣是有問題的
https://www.cnblogs.com/youho...
最好使用
console.log(Object.prototype.toString.call("jerry"));//[object String] console.log(Object.prototype.toString.call(12));//[object Number] console.log(Object.prototype.toString.call(true));//[object Boolean] console.log(Object.prototype.toString.call(undefined));//[object Undefined] console.log(Object.prototype.toString.call(null));//[object Null] console.log(Object.prototype.toString.call({name: "jerry"}));//[object Object] console.log(Object.prototype.toString.call(function(){}));//[object Function] console.log(Object.prototype.toString.call([]));//[object Array] console.log(Object.prototype.toString.call(new Date));//[object Date] console.log(Object.prototype.toString.call(/d/));//[object RegExp] function Person(){}; console.log(Object.prototype.toString.call(new Person));//[object Object]參考
Object.values()
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/93228.html
摘要:學(xué)習(xí)筆記二個(gè)人學(xué)習(xí)筆記參考阮一峰的教學(xué)學(xué)習(xí)筆記二是對(duì)學(xué)習(xí)筆記一的補(bǔ)充歷史是標(biāo)準(zhǔn)新增特性匯總方應(yīng)航知乎專欄個(gè)小變化新增特性匯總方應(yīng)航知乎專欄以后一年一次只增加了兩個(gè)特性只增加了個(gè)特性功能最多數(shù)據(jù)類型補(bǔ)充字符串多行字符串新特性多行字符串 JavaScript學(xué)習(xí)筆記二 個(gè)人學(xué)習(xí)筆記 參考阮一峰的JavaScript教學(xué) 學(xué)習(xí)筆記二是對(duì)學(xué)習(xí)筆記一的補(bǔ)充 JavaScript歷史 sho...
摘要:它通過數(shù)據(jù)模型進(jìn)行鍵值綁定及事件處理,通過模型集合器提供一套豐富的用于枚舉功能,通過視圖來進(jìn)行事件處理及與現(xiàn)有的通過接口進(jìn)行交互。 本人兼職前端付費(fèi)技術(shù)顧問,如需幫助請(qǐng)加本人微信hawx1993或QQ345823102,非誠勿擾 1.為初學(xué)前端而不知道怎么做項(xiàng)目的你指導(dǎo) 2.指導(dǎo)并扎實(shí)你的JavaScript基礎(chǔ) 3.幫你準(zhǔn)備面試并提供相關(guān)指導(dǎo)性意見 4.為你的前端之路提供極具建設(shè)性的...
摘要:對(duì)象是所有不同對(duì)象的容器,也就是說該對(duì)象保存所有物體光源攝像機(jī)以及渲染所需的其他對(duì)象。對(duì)象又是被稱為場(chǎng)景圖,它不僅僅是一個(gè)對(duì)象數(shù)組,還包含了整個(gè)場(chǎng)景圖樹形結(jié)構(gòu)中的所有節(jié)點(diǎn)每個(gè)添加到場(chǎng)景的對(duì)象,甚至包括本身都是繼承自一個(gè)名為的對(duì)象。 THREE.Scene THREE.Scene 對(duì)象是所有不同對(duì)象的容器,也就是說該對(duì)象保存所有物體、光源、攝像機(jī)以及渲染所需的其他對(duì)象。 THREE.S...
摘要:基本的學(xué)習(xí)思路是跟著框架設(shè)計(jì)這本書,甚至可以說是這本書的讀書筆記。也參考很多網(wǎng)上解讀的博客和學(xué)習(xí)資料。當(dāng)然,最重要的資料還是框架的源代碼。后來由于開發(fā)者反對(duì),新興的框架都在命名空間上構(gòu)建。 JavaScript框架學(xué)習(xí)筆記(一) 我為什么要學(xué)習(xí)框架 更深入的理解工具,以后用起來更順手而且也能做一定的工具取舍,學(xué)習(xí)理解新工具也就更快, 對(duì)提升js水平也很有幫助,框架有很多解決坑的經(jīng)典思...
摘要:在瀏覽器中的全局對(duì)象是對(duì)象。程序是由事件驅(qū)動(dòng)執(zhí)行的單線程模型,也不例外。不斷執(zhí)行響應(yīng)事件的函數(shù),直到?jīng)]有任何響應(yīng)事件的函數(shù)可以執(zhí)行,就退出了。方法此方法可以在下一次事件響應(yīng)中執(zhí)行代碼。它會(huì)返回一個(gè)對(duì)象,告訴我們文件的詳細(xì)信息。 global JS在瀏覽器中的全局對(duì)象是window對(duì)象。在Node.js環(huán)境中,全局對(duì)象則叫g(shù)lobal。我們可以用它來區(qū)分當(dāng)前JavaScript的執(zhí)行環(huán)境...
摘要:使用和架構(gòu)創(chuàng)建一個(gè)典型的項(xiàng)目。屬性被賦值給傳入的函數(shù)運(yùn)行的結(jié)果。渲染,我們使用,這是一個(gè)對(duì)象,它指向的屬性,使用函數(shù)使用的結(jié)果替換。最后,啟動(dòng)整體應(yīng)用,為了保證完全加載,用包裝器調(diào)用完整日常練習(xí)一些在對(duì)象初始化的時(shí)候執(zhí)行的代碼 使用Backbone.js 和 MVC 架構(gòu)創(chuàng)建一個(gè)典型的Hello world項(xiàng)目。雖然是殺雞用牛刀了,畢竟是我第一次使用Backbone.js 依賴 ...
閱讀 1094·2021-10-08 10:04
閱讀 3530·2021-08-05 10:01
閱讀 2287·2019-08-30 11:04
閱讀 1808·2019-08-29 15:29
閱讀 856·2019-08-29 15:12
閱讀 1680·2019-08-26 12:11
閱讀 3127·2019-08-26 11:33
閱讀 1172·2019-08-26 10:23