* unique array with objects based on a key (like 'id') or just by the array's value * @param {Array} src [{id:1},{id:2},{id:1}] * @param {String} [key] * @param {Boolean} [sort=False] * @returns {Array} [{id:1},{id:2}]
(src, key, sort)
| 92709 | * @param {Boolean} [sort=False] |
| 92710 | * @returns {Array} [{id:1},{id:2}] |
| 92711 | */ function uniqueArray(src, key, sort) { |
| 92712 | var results = []; |
| 92713 | var values = []; |
| 92714 | var i = 0; |
| 92715 | while(i < src.length){ |
| 92716 | var val = key ? src[i][key] : src[i]; |
| 92717 | if (inArray(values, val) < 0) results.push(src[i]); |
| 92718 | values[i] = val; |
| 92719 | i++; |
| 92720 | } |
| 92721 | if (sort) { |
| 92722 | if (!key) results = results.sort(); |
| 92723 | else results = results.sort(function sortUniqueArray(a, b) { |
| 92724 | return a[key] > b[key]; |
| 92725 | }); |
| 92726 | } |
| 92727 | return results; |
| 92728 | } |
| 92729 | /** |
| 92730 | * get the prefixed property |
| 92731 | * @param {Object} obj |
no test coverage detected