DoneJS StealJS jQuery++ FuncUnit DocumentJS
3.14.1
5.0.0 4.3.0 2.3.35
  • About
  • Guides
  • API Docs
  • Community
  • Contributing
  • Bitovi
    • Bitovi.com
    • Blog
    • Design
    • Development
    • Training
    • Open Source
    • About
    • Contact Us
  • About
  • Guides
  • API Docs
    • Observables
      • can-compute
      • can-define
      • can-define/list/list
      • can-define/map/map
      • can-define-stream
      • can-define-stream-kefir
      • can-event
      • can-event/async/async
      • can-event/batch/batch
      • can-event/lifecycle/lifecycle
      • can-kefir
      • can-list
      • can-map
      • can-map-backup
      • can-map-define
      • can-observation
      • can-observe
      • can-simple-map
      • can-simple-observable
      • can-stream
      • can-stream-kefir
    • Data Modeling
      • can-connect
      • can-connect-cloneable
      • can-connect-feathers
      • can-connect-ndjson
      • can-connect-signalr
      • can-fixture
      • can-fixture-socket
      • can-ndjson-stream
      • can-set
    • Views
      • can-component
      • can-ejs
      • can-element
      • can-react-component
      • can-stache
      • can-stache/helpers/route
      • can-stache-bindings
      • can-stache-converters
      • can-view-autorender
      • can-view-callbacks
      • can-view-href
      • can-view-import
      • can-view-live
      • can-view-model
      • can-view-nodelist
      • can-view-parser
      • can-view-scope
      • can-view-target
      • react-view-model
      • react-view-model/component
      • steal-stache
    • Routing
      • can-deparam
      • can-param
      • can-route
      • can-route-pushstate
    • JS Utilities
      • can-assign
      • can-define-lazy-value
      • can-globals
      • can-key-tree
      • can-make-map
      • can-parse-uri
      • can-string
      • can-string-to-any
      • can-util
      • can-zone
      • can-zone-storage
    • DOM Utilities
      • can-ajax
      • can-attribute-encoder
      • can-control
      • can-dom-events
      • can-event-dom-enter
      • can-event-dom-radiochange
      • can-jquery
    • Data Validation
      • can-define-validate-validatejs
      • can-validate
      • can-validate-interface
      • can-validate-legacy
      • can-validate-validatejs
    • Typed Data
      • can-cid
      • can-construct
      • can-construct-super
      • can-namespace
      • can-reflect
        • Type reflections
          • isBuiltIn
          • isConstructorLike
          • isFunctionLike
          • isIteratorLike
          • isListLike
          • isMapLike
          • isMoreListLikeThanMapLike
          • isObservableLike
          • isPlainObject
          • isPrimitive
          • isPromise
          • isSymbolLike
          • isValueLike
        • Get/Set reflections
          • deleteKeyValue
          • getKeyValue
          • getValue
          • setKeyValue
          • setValue
        • Call reflections
          • apply
          • call
          • new
        • Shape reflections
          • assign
          • assignDeep
          • assignSymbols
          • cloneKeySort
          • convert
          • defineInstanceKey
          • each
          • eachIndex
          • eachKey
          • getIdentity
          • getName
          • getOwnEnumerableKeys
          • getOwnKeyDescriptor
          • getOwnKeys
          • getSchema
          • hasKey
          • hasOwnKey
          • serialize
          • setName
          • size
          • toArray
          • unwrap
          • update
          • updateDeep
        • Observable reflections
          • getPriority
          • getKeyDependencies
          • getValueDependencies
          • isBound
          • keyHasDependencies
          • offInstanceBoundChange
          • offInstancePatches
          • offKeyValue
          • offPatches
          • offEvent
          • onEvent
          • onInstanceBoundChange
          • onInstancePatches
          • onKeyValue
          • onKeys
          • onKeysAdded
          • onKeysRemoved
          • onPatches
          • onValue
          • valueHasDependencies
          • setPriority
      • can-reflect-promise
      • can-types
    • Polyfills
      • can-symbol
      • can-vdom
    • Core
    • Infrastructure
      • can-global
      • can-test-helpers
    • Ecosystem
    • Legacy
  • Community
  • Contributing
  • GitHub
  • Twitter
  • Chat
  • Forum
  • News
Bitovi

getOwnEnumerableKeys

  • Edit on GitHub

Return the list of keys which can be iterated over on an object

getOwnEnumerableKeys(obj)

Return all keys on obj which have been defined as enumerable, either from explicitly setting enumerable on the property descriptor, or by using = to set the value of the property without a key descriptor, but excluding properties that only exist on obj's prototype chain. The default behavior can be overridden by implementing @@can.getOwnEnumerableKeys on obj. By default, canReflect.getOwnEnumerableKeys will use @@can.getOwnKeys to retrieve the set of keys and @@can.getOwnKeyDescriptor to filter for those which are enumerable. If either symbol is absent from obj, Object.keys is used.

var foo = new DefineMap({ bar: "baz", [canSymbol.for("quux")]: "thud" });
Object.defineProperty(foo, "jeek", {
  enumerable: true,
  value: "plonk"
});

canReflect.getOwnEnumerableKeys(foo); // -> ["bar", "jeek"]

Parameters

  1. obj {Object}:

    Any Map-like object

Returns

{Array}:

the Array of all enumerable keys from the object, either using @@can.getOwnEnumerableKeys from obj, or filtering obj's own keys for those which are enumerable.

CanJS is part of DoneJS. Created and maintained by the core DoneJS team and Bitovi. Currently 3.14.1.

On this page

Get help

  • Chat with us
  • File an issue
  • Ask questions
  • Read latest news