**(dataentries: // [[harlowe:Datamap|datamap]]//) -> //[[harlowe:Array|array]]//** This takes a [[harlowe:datamap|datamap]], and returns an [[harlowe:array|array]] of its name/value pairs. Each pair is a datamap that only has "name" and "value" data. The pairs are ordered by their name. === Example usage: === * ''%%(datapairs: (dm:'B',24, 'A',25))%%'' produces the following array: ''%%(a: (dm: "name", "A", "value", 25), (dm: "name", "B", "value", 24))%%'' * ''%%(altered: _entry via _entry's name + ":" + _entry's value, ...(datapairs: $m))%%'' creates an array of [[harlowe:string|string]] from the $m datamap's names and values. === Rationale: === There are occasions where operating on just the names, or the values, of a datamap isn't good enough - you'll want both. Rather than the verbose process of taking the [[harlowe:datanames|(datanames:)]] and [[harlowe:datavalues|(datavalues:)]] arrays and using them [[harlowe:interlaced|(interlaced:)]] with each other, you can use this macro instead, which allows the name and value of each entry to be referenced using "name" and "value" properties. === See also: === [[harlowe:datanames|(datanames:)]], [[harlowe:datavalues|(datavalues:)]]