diff options
Diffstat (limited to 'chrome/renderer/resources/extensions/utils.js')
-rw-r--r-- | chrome/renderer/resources/extensions/utils.js | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/chrome/renderer/resources/extensions/utils.js b/chrome/renderer/resources/extensions/utils.js new file mode 100644 index 0000000..47d8277 --- /dev/null +++ b/chrome/renderer/resources/extensions/utils.js @@ -0,0 +1,29 @@ +// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +function forEach(dict, f) { + for (key in dict) { + if (dict.hasOwnProperty(key)) + f(key, dict[key]); + } +} + +// Assuming |array_of_dictionaries| is structured like this: +// [{id: 1, ... }, {id: 2, ...}, ...], you can use +// lookup(array_of_dictionaries, 'id', 2) to get the dictionary with id == 2. +function lookup(array_of_dictionaries, field, value) { + var filter = function (dict) {return dict[field] == value;}; + var matches = array_of_dictionaries.filter(filter); + if (matches.length == 0) { + return undefined; + } else if (matches.length == 1) { + return matches[0] + } else { + throw new Error("Failed lookup of field '" + field + "' with value '" + + value + "'"); + } +} + +exports.forEach = forEach; +exports.lookup = lookup; |