Skip to content

Commit 3ef7d74

Browse files
author
jacobawenger
committed
Better implementation of _isArray() and _toArray() helpers within ReactFireMixin.
1 parent 6d63d61 commit 3ef7d74

File tree

4 files changed

+19
-36
lines changed

4 files changed

+19
-36
lines changed

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
v0.1.1
2+
-------------
3+
Release Date: 2014-05-02
4+
5+
* Better implementation of _isArray() and _toArray() helpers
6+
17
v0.1.0
28
-------------
39
Release Date: 2014-04-30

ReactFireMixin.js

Lines changed: 11 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -53,45 +53,22 @@ var ReactFireMixin = {
5353
/*************/
5454
/* HELPERS */
5555
/*************/
56-
/* Returns true if the inputted object is a number */
57-
_isNumeric: function(obj) {
58-
try {
59-
return (((obj - 0) == obj) && (obj.length > 0));
60-
} catch (e) {
61-
return false;
62-
} // try
63-
}, // isNumeric()
64-
6556
/* Returns true if the inputted object is a JavaScript array */
6657
_isArray: function(obj) {
67-
if (!obj) { return false; }
68-
try {
69-
if (!(obj.propertyIsEnumerable("length"))
70-
&& (typeof obj === "object")
71-
&& (typeof obj.length === "number")) {
72-
for (var idx in obj) {
73-
if (!this._isNumeric(idx)) { return false; }
74-
} // for (var idx in object)
75-
return true;
76-
} else {
77-
return false;
78-
} // if (!(obj.propertyIsEnumerable("length"))...
79-
} catch (e) {
80-
return false;
81-
} // try
82-
}, // isArray()
58+
return (obj && typeof obj === "object" && obj instanceof Array);
59+
},
8360

84-
/* Converts a Firebase list to a JavaScript array */
85-
_toArray: function(list) {
86-
var k, out = [];
87-
if (list) {
88-
if (this._isArray(list)) {
61+
/* Converts a Firebase object to a JavaScript array */
62+
_toArray: function(obj) {
63+
var out = [];
64+
if (obj) {
65+
if (this._isArray(obj)) {
8966
out = list;
9067
}
91-
else if (typeof(list) === "object") {
92-
for (k in list) {
93-
if (list.hasOwnProperty(k)) {
94-
out.push(list[k]);
68+
else if (typeof(obj) === "object") {
69+
for (var key in obj) {
70+
if (obj.hasOwnProperty(key)) {
71+
out.push(obj[key]);
9572
}
9673
}
9774
}

bower.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "ReactFire",
3-
"version": "0.1.0",
3+
"version": "0.1.1",
44
"homepage": "https://github.com/firebase/ReactFire",
55
"authors": [
66
"jacobawenger <jacob@firebase.com>"

examples/todoApp/bower.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,6 @@
2323
"dependencies": {
2424
"react": "~0.10.0",
2525
"firebase": "~1.0.12",
26-
"ReactFire": "~0.1.0"
26+
"ReactFire": "~0.1.1"
2727
}
2828
}

0 commit comments

Comments
 (0)