首页 > 解决方案 > 为什么我的数据在拆分功能中丢失?

问题描述

我有array = ["cstomer~12.3,74.3~249" ," bhai~31.6,74.38~519"]

我用这段代码分割它

array = ["cstomer~12.3,74.3~249" ," bhai~31.6,74.38~519"];

var input = [...array.reduce((items, item) => (item.length && (items = [...items, item.split("~")]), items), [])];
let locations = input.reduce((p, c, i) => {
    p[i] = [c[0], ...(c[1].split(",").map(y => +y))];
    return p;
  },[]);
  
console.log(locations);

resutl is 
[(Array), (Array)] = [["cstomer", 12.3,74.3], 
                       ["bhai", 12.3,74.3] ]

但它缺少 249 和 512

要求的结果是

[["cstomer", 12.3,74.3, 249], 
 ["bhai", 12.3,74.3, 512] ]

标签: javascriptarrayssplit

解决方案


如果索引不为零,您可以拆分和拆分嵌套部分,获取平面数组并将所有值转换为数字。

const
    array = ["cstomer~12.3,74.3~249", "bhai~31.6,74.38~519"],
    result = array.map(s => s
        .split(',')
        .flatMap(s => s.split('~'))
        .map((v, i) => i ? +v : v)
    );

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }


推荐阅读