我如何获得一个JS数组,它有一些元素也是数组,并使ALL数组元素成为顶级元素
How do I take a JS array that has some elements that are also arrays and make ALL array elements top level elements
如果有人问我这个问题,我很抱歉,我甚至不知道如何最好地表达这个问题,所以我会用代码来表达。注意:我无法控制数据的源格式,所以我必须按原样处理…
我有一个数组,看起来是这样的(真正的数组有很多条目,几百个,都是这样混合的,有些元素是逗号分隔的值,有些则不是):
var array = ["item1", "item2", "item3, item4", "item5", "item6"]
我已经知道怎么做了:
var array = ["item1", "item2", ["item3", "item4"] , "item5", "item6"]
我需要的是它是这样的:
var array = ["item1", "item2", "item3", "item4", "item5", "item6"]
该项目使用jQuery 1.7,重点是获取一个静态数据列表,并将其解析为一个数组,以便在jQuery UI自动完成插件中使用。同样,我无法控制传递给客户端的关键字的格式(这就是它们),应用程序做它所做的,我只能使用客户端代码(必须喜欢分区,嗯?)
您不需要第二步就可以获得数组数组,只需先join
,然后用逗号split
即可:
var array = ["item1", "item2", "item3, item4", "item5", "item6"]
console.log(array.join(',').split(','));
小提琴示例
在数组上递归。
function flatten(arr) {
var i = 0, a = [];
for (; i < arr.length; ++i) {
if (arr[i] instanceof Array) a = a.concat(flatten(arr[i]));
else a.push(arr[i]);
}
return a;
}
var foo = ["item1", "item2", ["item3", "item4"], "item5", "item6"];
flatten(foo);
// ["item1", "item2", "item3", "item4", "item5", "item6"]
开始:
http://jsfiddle.net/Rq5fb/
var array = ["item1", "item2", ["item3", "item4"], "item5", "item6"];
var result = [];
for (var i = 0, len = array.length; i < len; i++) {
if (typeof array[i] !== "object") {
result.push(array[i]);
}
else
{
while(array[i].length)
{
result.push(array[i].shift());
}
}
}
还有一种方法:
function flatten (array) {
function f (a, b) {
return a.concat(
(b instanceof Array) ? b.reduce(f, []) : [b]);
}
return array.reduce(f, []);
}
相关文章:
- 在函数中添加数组元素的数值
- 访问JSON对象内部的数组元素
- Mongoose-在更新中删除数组元素
- javascript数组元素是否知道其封闭数组
- 将数组元素附加到FormData dos'不适用于Firefox 15
- 如何在javascript中使用click函数选择数组元素
- 如何在JavaScript中剥离数组元素中的非整数
- 消隐数组元素是否生成自己的属性
- 如何使一个Math.random数组元素比另一个数组元素更有可能被选中
- 在Codrops的内容中添加数组元素展开缩略图网格预览
- 如何使用Jquery水平打印表中的数组元素,并在某个元素之后垂直打印
- 如何访问数组中的数组元素(JavaScript)
- 生成ACF标记位置的数组(元素列表后缺少])
- validate.js验证数组元素
- JavaScript Unshift EACH 数组元素
- 如何在加号运算符之后选择数组元素的一部分
- 访问标记图标的图像数组元素
- JavaScript 合并相同的数组元素
- 删除仅空格数组元素
- JavaScript闭包和返回数组元素