javascript 展平阵列

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 展平阵列相关的知识,希望对你有一定的参考价值。

function flattenArray(array) {
    if (arguments.length === 0) return [];
    else return Array.from(flatten(array));
}

// Generator
function *flatten(array) {
  // loop each value in the array
	for (elt of array) 
    if (Array.isArray(elt)) yield *flatten(elt); // if value is an array it calls itself and passes in the value
    else if (typeof elt === "function") yield elt() // check if the value is a function and returns that functions value
    else yield elt; // otherwise just add the value
}

flattenArray([1, "2", [3, function () { return 4; }, [ "five" ], "six", true, { prop: "val" }]]) // [1, "2", 3, 4, "five", "six", true, { prop: "val" }]
flattenArray([1, 2, [3, [4, 5], 6], 7, 8]) // [1, 2, 3, 4, 5, 6, 7, 8]
flattenArray([1, '2', [3, [4], function () { return 'five'; }]]) // [1, '2', 3, 4, 'five']

以上是关于javascript 展平阵列的主要内容,如果未能解决你的问题,请参考以下文章

javascript 展平2D阵列

“展平”单元阵列

Javascript递归数组展平

展平 javascript 对象数组

JavaScript数组 API 实现的几个常见操作

javascript 展平对象JavaScript