日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

javascript - js如何實現這種操作,get(obj,’k1’,’k2’,’k3’).then((v)=>console.log(v))

瀏覽:234日期:2023-06-01 17:34:32

問題描述

類似下面這種代碼

get(obj,’k1’,’k2’,’k3’) .then((v)=>console.log(v)) .else(()=>console.log(’值為空’));

實現下面這種代碼的功能

if(obj && obj.k1 && obj.k1.k2 && obj.k1.k2.k3){ console.log(obj.k1.k2.k3);}else{ console.log(’值為空’)}

問題解答

回答1:

采用es6+promise實現方式

// 功能實現function get(obj, ...props) { // 檢查該對象是否擁有某個屬性 function hasProp(obj, prop) { return !!obj[prop] } return new Promise(function(resolve, reject) { let tempObj = {...obj} for (let i = 0; i < props.length; i++) { // 如果找到該屬性,將該屬性存儲起來繼續尋找下一個屬性,直到循環結束 if (hasProp(tempObj, props[i])) {tempObj = tempObj[props[i]] } else { // 找不到則返回錯誤信息return reject(’找不到’ + props[i] + ’屬性’) } } return resolve(tempObj) })}// 使用let obj = { user: { name: ’anguer’ }}get(obj, ’user’, ’name’).then(function(res) { console.log(res) // print ’anguer’}).catch(function(err) { console.log(err)})回答2:

這樣行不行

function get (obj) { var scope = { obj: obj } var path = ’scope.obj.’ + Array.prototype.slice.call(arguments, 1).join(’.’) var value = null var NONE = ’值為空’ try {value = (new Function(’scope’, ’return ’ + path + ’;’))(scope)if (value === null || value === undefined) { return NONE } else { return value} } catch (e) {return NONE }}var obj = { k1: { k2: { k3: 1}}}get(obj, ’k1’, ’k2’, ’k3’) // 1get(obj, ’k1’, ’k’, ’k3’) // 值為空回答3:

class Tang { constructor() { this.obj = null; this.keys = []; this.thenF = []; this.elseF = []; } then(fn) { this.thenF.push(fn); return this; } _init() { let [obj, ...keys] = arguments; this.obj = obj; this.keys = keys; setTimeout(() => this._start(), 0) return this; } _start() { while(this.keys.length && this.obj) { this.obj = this.obj[this.keys.shift()]; } if (!this.keys.length) { this.thenF.forEach(fn => fn(this.obj)); } else { this.elseF.forEach(fn => fn()); } } else(fn) { this.elseF.push(fn); return this; }}let obj = {k1:{k2:{k3:1}}};let tang = new Tang();let get = tang._init.bind(tang);get(obj,’k1’,’k2’,’k3’) .then((v)=>console.log(v)) .else(()=>console.log(’值為空’));

看到鏈式調用我就想到了之前的lazyman。實現的比較丑陋。。。

回答4:

參考一下

function get (obj, ...keys) { try { let value = keys.reduce((o, k) => o[k], obj) return { then (cb) {if (typeof cb === ’function’) { cb(value) }return {else () {}} } } } catch (e) { return { then () {return { else (cb) { if (typeof cb === ’function’) { cb(e) } }} } } }}

標簽: JavaScript
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美a级一区二区| 久久狠狠婷婷| 成人啊v在线| 丁香六月综合| 91精品啪在线观看国产18| 中文一区一区三区高中清不卡免费| 麻豆久久久久久久| 蜜桃av在线播放| 99在线精品视频在线观看| 久久亚洲欧美| 国产精品一区二区美女视频免费看| 精品国产一区二区三区性色av| 日韩综合一区| 一区二区视频欧美| 欧美一区不卡| 欧美成人a交片免费看| 欧美日韩国产一区二区三区不卡 | 久久免费福利| 久久青草久久| 日韩国产精品久久久| 加勒比视频一区| 99香蕉国产精品偷在线观看| 国产精品天天看天天狠| 亚洲a在线视频| 日韩福利视频一区| 日本高清不卡一区二区三区视频| 蜜桃久久精品一区二区| 精品视频91| 欧美日韩国产亚洲一区| 91精品国产自产观看在线| 亚洲爱爱视频| 亚洲天堂免费| 国产精品不卡| 人人爽香蕉精品| 麻豆精品久久久| 亚洲综合丁香| 精品一区视频| 综合激情在线| 999精品在线| 国产精品久久| 免费日韩av片| 丝袜美腿诱惑一区二区三区| 日本成人中文字幕| 亚洲高清成人| 久久一区国产| 亚洲2区在线| 日本精品不卡| 国产亚洲一区| 老鸭窝毛片一区二区三区| 日韩成人高清| 欧美成人一二区| 亚洲91在线| 伊人影院久久| 不卡一二三区| 国产精品分类| 丝袜美腿一区二区三区| 国产日韩电影| 欧美国产中文高清| 亚洲丝袜啪啪| 精品中文一区| 国产aⅴ精品一区二区四区| 首页国产欧美久久| 伊人久久高清| 精品午夜av| 欧美日韩夜夜| 中文字幕日韩高清在线| 婷婷综合亚洲| 欧美sss在线视频| 精品一区二区三区亚洲| 日韩成人精品一区二区三区 | 久久av免费| 天海翼精品一区二区三区| 国产一区久久| 新版的欧美在线视频| 欧美成人aaa| 青草国产精品久久久久久| 免费的成人av| 亚洲色诱最新| 精品1区2区3区4区| 久久精品青草| 精品丝袜在线| www.51av欧美视频| 国产精品精品国产一区二区| 另类欧美日韩国产在线| 久久精品xxxxx| 国产亚洲字幕| 国产美女久久| 国产日韩中文在线中文字幕| 一本一道久久a久久| 日韩专区欧美专区| 中文字幕日韩亚洲| 四虎精品永久免费| 亚洲啊v在线免费视频| 日韩精品免费观看视频| 偷拍亚洲精品| 日本午夜精品久久久久| 日韩 欧美一区二区三区| 亚洲精品国产日韩| 青青青国产精品| 国产精品第十页| 国产精品v日韩精品v欧美精品网站| 欧美日韩精品一区二区三区在线观看| 日韩激情一二三区| 久久不见久久见国语| 麻豆中文一区二区| 国产成人精选| 欧美羞羞视频| 激情91久久| 日韩欧美中文字幕在线视频| 日韩av成人高清| 久久不卡国产精品一区二区| 91亚洲一区| 欧美精品一区二区久久| 亚洲人成在线影院| 国产精品主播| 成人在线免费观看91| 久久狠狠婷婷| 噜噜噜躁狠狠躁狠狠精品视频| 中文字幕一区二区三区四区久久 | 99在线|亚洲一区二区| 日韩一区二区三区免费视频| 国产精品巨作av| 国产69精品久久| 黄色免费成人| 18国产精品| 亚洲天堂资源| 丝袜国产日韩另类美女| 国产美女亚洲精品7777| 日韩a一区二区| 国产精品美女| 美女久久久精品| 国产精品99一区二区| 久久大逼视频| 精品国产亚洲日本| 亚洲激情久久| 欧美欧美黄在线二区| 日韩欧美一区免费| 亚洲精品综合| 福利一区和二区| 好吊日精品视频| 国产精品v日韩精品v欧美精品网站 | 国产成人精品一区二区三区视频 | 久久不见久久见中文字幕免费| 久久黄色影院| 欧美在线看片| 一区久久精品| 免费看久久久| 久久夜色精品| a日韩av网址| 日韩在线黄色| 久久久成人网| 欧美日一区二区在线观看| 国产99亚洲| 免费日韩成人| 在线精品福利| 91精品国产乱码久久久久久久| 日韩不卡一二三区| 久久精品电影| 美女视频免费精品| 亚洲毛片网站| 亚洲国产综合在线看不卡| 国产欧美日韩一级| 99riav1国产精品视频| 麻豆成人av在线| 亚洲精品少妇| 天堂网在线观看国产精品| 国产一区二区三区天码| 日韩精品中文字幕一区二区| 亚洲国产专区| 国产66精品| 国产欧美高清| 亚洲精品裸体| 欧美日韩国产免费观看视频| 国产成年精品| 久久国产尿小便嘘嘘| 免费成人在线观看| 午夜欧美在线| 日韩欧美午夜| 成人精品高清在线视频| 国产精品天天看天天狠| 日韩精品亚洲专区在线观看| 99riav国产精品| 国产真实久久| av高清一区| 日韩一区三区| 97人人精品| 精品国产一区二区三区av片| 蜜臀a∨国产成人精品| 久久国产电影| 亚洲成av在线| 久久精品官网| 欧洲在线一区| 欧美成人精品三级网站| 成人污污视频| 国产va免费精品观看精品视频| 精品一区二区三区亚洲| 麻豆一区二区99久久久久| 国产精品1区在线| 麻豆精品久久| 久久精品国产一区二区|