mirror of
https://github.com/vercel-labs/scriptc.git
synced 2026-10-15 04:50:40 +08:00
27 lines
1.0 KiB
TypeScript
27 lines
1.0 KiB
TypeScript
// join with JS-exact stringification (shortest-roundtrip numbers,
|
|
// true/false booleans, strings verbatim), plus chained map/filter/join.
|
|
console.log([1, 2, 3].join(","));
|
|
console.log([1.5, -0, 0.1, 1e21, 1e-7].join("|")); // JS number formatting, -0 prints "0"
|
|
console.log([0 / 0, 1 / 0, -1 / 0].join(" ")); // NaN Infinity -Infinity
|
|
console.log(["a", "", "c"].join("-")); // empty elements keep their slots
|
|
console.log([true, false, true].join("&"));
|
|
console.log(["solo"].join(","), [42].join(","));
|
|
const empty: string[] = [];
|
|
console.log(`<${empty.join(",")}>`);
|
|
console.log(["x", "y"].join("")); // empty separator
|
|
console.log(["p", "q"].join(" :: ")); // multi-char separator
|
|
|
|
// Chained: map -> filter -> join in one expression.
|
|
const nums = [1, 2, 3, 4, 5, 6];
|
|
console.log(
|
|
nums
|
|
.map((x) => x * x)
|
|
.filter((x) => x % 2 === 0)
|
|
.join(","),
|
|
);
|
|
console.log(nums.map((x) => `<${x}>`).join("").length);
|
|
|
|
// join result is a plain string: methods and concatenation apply.
|
|
const joined = [10, 20].join("+");
|
|
console.log(joined + "=30", joined.indexOf("+"));
|