Page Menu
Home
Software Heritage
Search
Configure Global Search
Log In
Files
F9347981
array-iteration.js
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
2 KB
Subscribers
None
array-iteration.js
View Options
var
bind
=
require
(
'../internals/function-bind-context'
);
var
uncurryThis
=
require
(
'../internals/function-uncurry-this'
);
var
IndexedObject
=
require
(
'../internals/indexed-object'
);
var
toObject
=
require
(
'../internals/to-object'
);
var
lengthOfArrayLike
=
require
(
'../internals/length-of-array-like'
);
var
arraySpeciesCreate
=
require
(
'../internals/array-species-create'
);
var
push
=
uncurryThis
([].
push
);
// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation
var
createMethod
=
function
(
TYPE
)
{
var
IS_MAP
=
TYPE
==
1
;
var
IS_FILTER
=
TYPE
==
2
;
var
IS_SOME
=
TYPE
==
3
;
var
IS_EVERY
=
TYPE
==
4
;
var
IS_FIND_INDEX
=
TYPE
==
6
;
var
IS_FILTER_REJECT
=
TYPE
==
7
;
var
NO_HOLES
=
TYPE
==
5
||
IS_FIND_INDEX
;
return
function
(
$this
,
callbackfn
,
that
,
specificCreate
)
{
var
O
=
toObject
(
$this
);
var
self
=
IndexedObject
(
O
);
var
boundFunction
=
bind
(
callbackfn
,
that
);
var
length
=
lengthOfArrayLike
(
self
);
var
index
=
0
;
var
create
=
specificCreate
||
arraySpeciesCreate
;
var
target
=
IS_MAP
?
create
(
$this
,
length
)
:
IS_FILTER
||
IS_FILTER_REJECT
?
create
(
$this
,
0
)
:
undefined
;
var
value
,
result
;
for
(;
length
>
index
;
index
++
)
if
(
NO_HOLES
||
index
in
self
)
{
value
=
self
[
index
];
result
=
boundFunction
(
value
,
index
,
O
);
if
(
TYPE
)
{
if
(
IS_MAP
)
target
[
index
]
=
result
;
// map
else
if
(
result
)
switch
(
TYPE
)
{
case
3
:
return
true
;
// some
case
5
:
return
value
;
// find
case
6
:
return
index
;
// findIndex
case
2
:
push
(
target
,
value
);
// filter
}
else
switch
(
TYPE
)
{
case
4
:
return
false
;
// every
case
7
:
push
(
target
,
value
);
// filterReject
}
}
}
return
IS_FIND_INDEX
?
-
1
:
IS_SOME
||
IS_EVERY
?
IS_EVERY
:
target
;
};
};
module
.
exports
=
{
// `Array.prototype.forEach` method
// https://tc39.es/ecma262/#sec-array.prototype.foreach
forEach
:
createMethod
(
0
),
// `Array.prototype.map` method
// https://tc39.es/ecma262/#sec-array.prototype.map
map
:
createMethod
(
1
),
// `Array.prototype.filter` method
// https://tc39.es/ecma262/#sec-array.prototype.filter
filter
:
createMethod
(
2
),
// `Array.prototype.some` method
// https://tc39.es/ecma262/#sec-array.prototype.some
some
:
createMethod
(
3
),
// `Array.prototype.every` method
// https://tc39.es/ecma262/#sec-array.prototype.every
every
:
createMethod
(
4
),
// `Array.prototype.find` method
// https://tc39.es/ecma262/#sec-array.prototype.find
find
:
createMethod
(
5
),
// `Array.prototype.findIndex` method
// https://tc39.es/ecma262/#sec-array.prototype.findIndex
findIndex
:
createMethod
(
6
),
// `Array.prototype.filterReject` method
// https://github.com/tc39/proposal-array-filtering
filterReject
:
createMethod
(
7
)
};
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Jul 4 2025, 6:06 PM (4 w, 6 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3367627
Attached To
rDWAPPS Web applications
Event Timeline
Log In to Comment