js/es6 关于数组中的数组的问题

image.png

数据结构如上,我该怎么单纯提取出这两个前面带有1/2的数组出来

示例结构↓

const data = [{ rel: '&', '1': { tpye: '1', label: '大神' }, '2': { tpye: '2', label: '你好' }, rule: [{ id: '1' }] }]

期待效果↓

const result = [{ tpye: '1', label: '大神' }, { tpye: '2', label: '你好' }]

顺带一提,在这个data中可能还会有前面为0的undefined
image.png

在这里先感谢各位大神们的解答,小弟感激不尽!

阅读 2.7k
5 个回答
function obj2arr(obj) {
    return Object.entries(obj).reduce((res, [k, v]) => {
        if(!isNaN(+k) && v !== null && v !== undefined) res.push(v)
        return res;
    }, [])
}
const result = Object.keys(data[0]).map(v=>/^\d+$/.test(v)&&data[0][v]).filter(v=>v);
const result = Object.keys(data[0])
            .map((item) => /\d+/.test(item) && data[0][item] && data[0][item])
            .filter((item) => item);
function transform(arr) {
    var ret = [];
    for (var key in arr[0]) {
        var value = arr[0][key];
        if (/^\d+$/.test(key) && typeof value === "object" && value) {
            ret.push(value);
        }
    }
    return ret;
}
var result = transform(data);
console.dir(result);

你如果明确有这样的对象,其实很简单的

const data = [{ rel: '&', '1': { tpye: '1', label: '大神' }, '2': { tpye: '2', label: '你好' }, rule: [{ id: '1' }] }]
adata = [data[0]["1"],data[0]["2"]]
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏