array.js 540 B

12345678910111213141516171819202122
  1. import value from "./value.js";
  2. import numberArray, {isNumberArray} from "./numberArray.js";
  3. export default function(a, b) {
  4. return (isNumberArray(b) ? numberArray : genericArray)(a, b);
  5. }
  6. export function genericArray(a, b) {
  7. var nb = b ? b.length : 0,
  8. na = a ? Math.min(nb, a.length) : 0,
  9. x = new Array(na),
  10. c = new Array(nb),
  11. i;
  12. for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);
  13. for (; i < nb; ++i) c[i] = b[i];
  14. return function(t) {
  15. for (i = 0; i < na; ++i) c[i] = x[i](t);
  16. return c;
  17. };
  18. }