UNPKG

@stdlib/ndarray-iter-entries

Version:

Create an iterator which returns [index, value] pairs for each element in a provided ndarray.

6 lines (5 loc) 1.43 kB
"use strict";var b=function(e,r){return function(){return r||e((r={exports:{}}).exports,r),r.exports}};var q=b(function(k,g){ var f=require('@stdlib/utils-define-nonenumerable-read-only-property/dist'),O=require('@stdlib/assert-is-plain-object/dist'),E=require('@stdlib/ndarray-base-assert-is-order/dist'),j=require('@stdlib/assert-is-ndarray-like/dist'),T=require('@stdlib/assert-has-own-property/dist'),m=require('@stdlib/symbol-iterator/dist'),z=require('@stdlib/array-base-zeros/dist'),F=require('@stdlib/ndarray-shape/dist'),L=require('@stdlib/ndarray-base-numel/dist'),P=require('@stdlib/ndarray-base-next-cartesian-index/dist').assign,l=require('@stdlib/error-tools-fmtprodmsg/dist');function p(e){var r,a,u,n,i,s,t,d,v,o;if(!j(e))throw new TypeError(l('1jr4f',e));if(n={order:e.order},arguments.length>1){if(r=arguments[1],!O(r))throw new TypeError(l('1jr2V',r));if(T(r,"order")){if(!E(r.order))throw new TypeError(l('1jr5C',"order",r.order));n.order=r.order}}return a=F(e),u=a.length,v=L(a),v===0&&(s=!0),n.order==="row-major"?d=u-1:d=0,o=-1,t=z(u),i={},f(i,"next",c),f(i,"return",h),m&&f(i,m,y),i;function c(){return o+=1,s||o>=v?{done:!0}:(o>0&&(t=P(a,n.order,t,d,t)),{value:[t.slice(),e.get.apply(e,t)],done:!1})}function h(w){return s=!0,arguments.length?{value:w,done:!0}:{done:!0}}function y(){return p(e,n)}}g.exports=p });var S=q();module.exports=S; /** @license Apache-2.0 */ //# sourceMappingURL=index.js.map