मैं Google Apps स्क्रिप्ट में शीर्षलेख पंक्ति बनाने के लिए अपने obj की सभी कुंजियों को वापस करने का प्रयास कर रहा हूं। जब मैं कंसोल.लॉग (ओबीजे) करता हूं तो यह वही होता है:

{tagId=270, accountId=XXXXX, monitoringMetadata={type=map}, firingTriggerId=[18], type=sp, containerId=XXXXX, workspaceId=XXXXX, name=GADR - Product Detail View - Product Detail Page, tagManagerUrl=https://tagmanager.google.com/#/container/accounts/XXX/containers/XXX/workspaces/XXX/tags/270?apiLink=tag, parameter=[{value={{CJ - GADR SKU - Product Detail Page}}, type=template, key=eventItems}, {type=template, key=eventValue, value={{DLV - Product Price - Product Detail Pages}}}, {value=true, key=enableDynamicRemarketing, type=boolean}, {type=list, key=customParams, list=[{map=[{type=template, key=key, value=product_name}, {key=value, type=template, value={{DLV - Product Name - Product Detail Pages}}}], type=map}, {type=map, map=[{value=product_price, type=template, key=key}, {key=value, type=template, value={{DLV - Product Price - Product Detail Pages}}}]}, {map=[{type=template, key=key, value=product_id}, {value={{DLV - Product ID - Product Detail Pages}}, type=template, key=value}], type=map}, {map=[{value=product_category, type=template, key=key}, {value={{DLV - Product Category - Product Detail Pages}}, key=value, type=template}], type=map}, {type=map, map=[{value=user_id, key=key, type=template}, {value={{DLV - User ID - All Pages}}, type=template, key=value}]}, {map=[{value=user_status, type=template, key=key}, {type=template, value={{DLV - User Status - All Pages}}, key=value}], type=map}, {type=map, map=[{value=page_type, type=template, key=key}, {key=value, value={{DLV - Page Type - All Pages}}, type=template}]}, {map=[{type=template, value=user_purchase_count, key=key}, {key=value, type=template, value={{DLV - User Purchase Count - All Pages}}}], type=map}, {type=map, map=[{value=user_lifetime_value, type=template, key=key}, {key=value, value={{DLV - User Lifetime Value - All Pages}}, type=template}]}]}, {type=template, value=view_item, key=eventName}, {type=template, value={{CST - Google Ads ID - All Pages}}, key=conversionId}, {type=template, value=USER_SPECIFIED, key=customParamsFormat}, {key=rdp, value=false, type=boolean}], tagFiringOption=oncePerEvent, path=accounts/XXX/containers/XXXX/workspaces/XXXX/tags/270, fingerprint=1608071670124}

और जब मैं console.log(Object.keys(obj));

[setMonitoringMetadataTagNameKey, setName, setTagFiringOption, setNotes, getMonitoringMetadata, tagId, firingTriggerId, getSetupTag, getFiringTriggerId, getName, name, getTagFiringOption, getParentFolderId, setWorkspaceId, containerId, getFingerprint, getTagManagerUrl, parameter, getBlockingTriggerId, setLiveOnly, setFingerprint, setTagManagerUrl, getContainerId, setScheduleEndMs, setTagId, getPaused, path, setContainerId, getLiveOnly, setFiringTriggerId, getBlockingRuleId, getFiringRuleId, getTagId, setTeardownTag, getTeardownTag, setFiringRuleId, getType, getPriority, accountId, setPaused, monitoringMetadata, setScheduleStartMs, getNotes, setParameter, toString, setParentFolderId, getPath, setSetupTag, fingerprint, setAccountId, getAccountId, workspaceId, setBlockingTriggerId, type, tagFiringOption, tagManagerUrl, getMonitoringMetadataTagNameKey, setPriority, setType, getScheduleEndMs, setBlockingRuleId, setPath, getParameter, getWorkspaceId, getScheduleStartMs, setMonitoringMetadata]

मुझे ये सभी अतिरिक्त कुंजियाँ मिल रही हैं जो सेट से शुरू होती हैं और प्राप्त करती हैं जो ओबीजे में मौजूद नहीं हैं और मैं यह पता नहीं लगा सकता कि क्यों।

0
George 21 पद 2020, 20:03

1 उत्तर

सबसे बढ़िया उत्तर

वे कुंजियाँ ऑब्जेक्ट में मौजूद होती हैं और इसलिए उन्हें दिखाया जाता है, जब उन कुंजियों को Object.keys() का उपयोग करके पुनर्प्राप्त किया जाता है। console.log() ऐप्स स्क्रिप्ट में ऑब्जेक्ट को स्ट्रिंग करने का प्रयास करता है (यद्यपि ऐप्स स्क्रिप्ट में कस्टम कार्यान्वयन के कारण एक अजीब/गैर-मानक फैशन में) और स्ट्रिंगिफाई में फंक्शन शामिल नहीं हैं और इसलिए जब स्क्रिप्ट सीधे लॉग इन console.log() .

आप ऑब्जेक्ट पर पुनरावृति कर सकते हैं और उन कार्यों को फ़िल्टर कर सकते हैं:

const keysWithoutFunctions = Object.keys(obj).filter(key => typeof obj[key] !== 'function')
4
TheMaster 22 पद 2020, 07:53
यह किया! यह अजीब है क्योंकि वे फ़ंक्शन कुंजियाँ Google टैग प्रबंधक दस्तावेज़ में मौजूद नहीं हैं। सभी कार्यों सहित वस्तु में वास्तव में क्या है, यह देखने का कोई तरीका?
 – 
George
22 पद 2020, 21:26
क्या आपने इसे पहले ही नहीं देखा? Object.keys() का उपयोग कर रहे हैं? यह भी देखें developer.mozilla.org/en-US/docs/…
 – 
TheMaster
22 पद 2020, 21:28
मैं चाबियाँ देख सकता हूं, लेकिन उन चाबियों से जुड़े डेटा को नहीं। वे कुंजियाँ GTM दस्तावेज़ीकरण में मौजूद नहीं हैं, इसलिए मुझे नहीं पता कि वे क्या हैं या वे वहाँ क्यों हैं।
 – 
George
23 पद 2020, 04:52
वे कार्य हैं। आप object[key] का उपयोग करके विधि तक पहुंच सकते हैं, लेकिन आप अभी भी फ़ंक्शन का स्रोत कोड नहीं देख पाएंगे (आप फ़ंक्शन को निष्पादित कर सकते हैं: object[key](argument))। उनके नाम से देखते हुए, वे "गेटर्स एंड सेटर्स" हैं।
 – 
TheMaster
23 पद 2020, 07:50