blob: fe157aa7636a180b37b8aface1e8a1f45ae964de (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
'use strict';
module.exports = function array_reverse(array, preserveKeys) {
// eslint-disable-line camelcase
// discuss at: http://locutus.io/php/array_reverse/
// original by: Kevin van Zonneveld (http://kvz.io)
// improved by: Karol Kowalski
// example 1: array_reverse( [ 'php', '4.0', ['green', 'red'] ], true)
// returns 1: { 2: ['green', 'red'], 1: '4.0', 0: 'php'}
var isArray = Object.prototype.toString.call(array) === '[object Array]';
var tmpArr = preserveKeys ? {} : [];
var key;
if (isArray && !preserveKeys) {
return array.slice(0).reverse();
}
if (preserveKeys) {
var keys = [];
for (key in array) {
keys.push(key);
}
var i = keys.length;
while (i--) {
key = keys[i];
// @todo: don't rely on browsers keeping keys in insertion order
// it's implementation specific
// eg. the result will differ from expected in Google Chrome
tmpArr[key] = array[key];
}
} else {
for (key in array) {
tmpArr.unshift(array[key]);
}
}
return tmpArr;
};
//# sourceMappingURL=array_reverse.js.map
|