javascript - 展平数组并保留索引作为其位置值

标签 javascript angularjs lodash

$scope.data = [[1,2,3], [1,5,6,7], [2,3]];

我会用 _.flatten($scope.data)所以scope.data会是这样的

$scope.data = [1,2,3,1,5,6,7,2,3];

但我想保留数组的索引在每个被展平的元素中

所以我会有类似的东西:

$scope.data = [{value:1, index:1},
                  {value:2, index:1},
                  {value:3, index:1},
                  {value:1, index:2},
                  {value:5, index:2},
                  {value:6, index:2},
                  {value:7, index:2},
                  {value:2, index:3}
                  {value:3, index:3}];

最佳答案

您可以像这样循环遍历原始数组:

function flatten(arr)
{
    var returnArray = new Array();
    for(var i = 0; i < arr.length; i++)
    {
        for(var j = 0; j < arr[i].length; j++)
        {
            returnArray.push({"value" : arr[i][j], "index" : i});
        }
    }
    return returnArray;
}

输出:

enter image description here

关于javascript - 展平数组并保留索引作为其位置值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31992380/

相关文章:

javascript - 通过 phpmailer 发送电子邮件不会返回 Javascript 响应

javascript - 发送电子邮件时出现 Node.js 404 错误,忽略了我的 res.status

javascript - Lodash 比较不同长度的对象数组

javascript - Array.push 正在推送一个空数组而不是我传递给它的完整数组

javascript - Angular 4 - 请求的资源上不存在 'Access-Control-Allow-Origin' header

javascript - 使用 Angular JS 显示第一个 JSON 数据对象而不选择任何链接

javascript - AngularJS - 带插值的动态标题

javascript - 发布请求时 Object.assign 进行复制

javascript - 如何通过特定键合并数组中的项目?

javascript - 如何为 node.js 中的 MongoDB 索引指定 javascript 对象中的属性顺序?