【问题标题】:How to slice or limit dynamic nested array nodejs如何切片或限制动态嵌套数组nodejs
【发布时间】:2022-01-20 22:15:03
【问题描述】:

如何对嵌套数组中的数据进行切片? 我想将它与分页一起使用以限制要显示的数据。 我已经尝试使用 object key 但只限制嵌套数组而不显示父数据

我正在尝试像这样使用对象键。输出正确,但未显示父项,如 data1、data2 等

  dataJson.map(d => {
    for(var i=0;i<Object.keys(d).length;i++){
      let rev = d[Object.keys(d)].slice(1 * 2 - 2, 1 * 2);
      console.log(rev);
   }
  })

输出

    {
      id: 1,
      name: "John" 
    },
    {
      id: 2,
      name: "James" 
    }

    {
      id: 1,
      name: "May" 
    },
    {
      id: 2,
      name: "Joe" 
    }

在单个对象数组中构造数据json

 "data": [
    {
      "data 1": [
        {
          id: 1,
          name: "John" 
        },
        {
          id: 2,
          name: "James" 
        },
        {
          id: 3,
          name: "James" 
        }
      ]
    },
    {
      "data 2": [
        {
          id: 1,
          name: "May" 
        },
        {
          id: 2,
          name: "Joe" 
        },
        {
          id: 3,
          name: "Din" 
        }
      ]
    },
    data 3,
    many data others
 ]

我想这样显示(限制数据并显示嵌套数组中的 2 个数据) 带函数切片

 "data": [
    {
      "data 1": [
        {
          id: 1,
          name: "John" 
        },
        {
          id: 2,
          name: "James" 
        }
      ]
    },
    {
      "data 2": [
        {
          id: 1,
          name: "May" 
        },
        {
          id: 2,
          name: "Joe" 
        }
      ]
    },
 ]

【问题讨论】:

  • 没有任何尝试就问了这个问题?向我们展示您到目前为止所写的内容。
  • 嗨努尔,感谢您的评论。我已经更新了问题并做了我之前做过的事情

标签: node.js express multidimensional-array dynamic slice


【解决方案1】:

这是您的要求

    var array = [];
var data = []
var data1 = [{ name: 's' }, { name: 'v' }, { name: 'c' }];
var data2 = [{ name: 's' }, { name: 'v' }, { name: 'c' }];

array['data'] = data;
data['data 1'] = data1;
data['data 2'] = data2;

for (var i = 1; i < 3; i++) {
    array.data['data ' + i].splice(2, 1)

}
console.log(array);

输出:

[
  data: [
    'data 1': [ [Object], [Object] ],
    'data 2': [ [Object], [Object] ]
  ]
]

【讨论】:

  • 谢谢。但还没有解决我的问题
【解决方案2】:

查看更多关于Object.entries

let data = [{ "data 1": [{ id: 1, name: "John" }, { id: 2, name: "James" }, { id: 3, name: "James" }] }, { "data 2": [{ id: 1, name: "May" }, { id: 2, name: "Joe" }, { id: 3, name: "Din" }] },]
let out = data.map(v => {
    let obj = {}
    for (let [k, arr] of Object.entries(v))
        obj[k] = arr.slice(0, 2);

    return obj
});
console.log(out);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-24
    • 1970-01-01
    • 1970-01-01
    • 2018-01-23
    • 1970-01-01
    • 2016-08-03
    • 2014-08-15
    • 1970-01-01
    相关资源
    最近更新 更多