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-util/js
          • ./assign-non-enumerable/
          • ./deep-assign/
          • ./defaults/
          • ./diff/
          • ./diff-array/
          • ./diff-object/
          • ./each/
          • ./get/
          • ./import/
          • ./is-array-like/
          • ./is-empty-object/
          • ./is-function
          • ./is-node/
          • ./is-plain-object/
          • ./is-promise/
          • ./is-promise-like/
          • ./is-web-worker/
          • ./join-uris/
          • ./make-array/
          • ./make-map/
          • ./make-promise/
          • ./omit/
          • ./set-immediate/
          • ./string/
            • string.camelize
            • string.capitalize
            • string.esc
            • string.getObject
            • string.hyphenate
            • string.replaceWith
            • string.strReplacer
            • string.strUndHash
            • string.sub
            • string.underscore
          • ./string-to-any/
        • can-util/dom
          • ./attr/
          • ./child-nodes/
          • ./class-name/
          • ./data/
          • ./dispatch/
          • ./events/
          • ./frag/
          • ./mutate/
        • deprecated
          • ./dom/ajax/
          • ./dom/events/enter/
          • ./js/assign/
          • ./js/cid/
          • ./js/cid-map/
          • ./js/cid-set/
          • ./js/deparam/
          • ./js/dev/
          • ./js/document/
          • ./js/global/
          • ./js/is-browser-window/
          • ./js/is-string/
          • ./js/location/
          • ./js/log/
          • ./js/mutation-observer/
          • ./js/param/
          • ./js/parse-uri/
          • ./js/types/
      • 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
      • 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

string.getObject

  • Edit on GitHub

string.getObject(name, roots)

Parameters

  1. name {String}:

    a String of dot-separated keys, representing a path of properties

  2. roots {Object|Array}:

    the object to use as the root for property based navigation

Returns

{*}:

the value at the property path descending from roots

Return the result of descending the path name through the properties of the object or objects roots

If roots is an Array, each element of the array is evaluated, in order, until the path is found in an element's properties (and properties-of-properties, etc.). Otherwise roots is evaluated as the root object, returning either the object at the property path descended from roots or undefined if any subpath is not found.

A path is a dot-delimited sequence of zero or more property names, such that "foo.bar" means "the property 'bar' of the object at the property 'foo' of the root." An empty path returns the first object in roots if it's an array, roots itself otherwise.

var string = require("can-util/js/string/string");

console.log(string.getObject("a.b.c", {a: {b: {c: "foo"}}})); // -> "foo"
console.log(string.getObject("a.b.c", {a: {}})); // -> undefined
console.log(string.getObject("a.b", [{a: {}}, {a: {b: "bar"}}])); // -> "bar"

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