【问题标题】:How to divide multi array in javascript如何在javascript中划分多个数组
【发布时间】:2021-07-19 06:25:49
【问题描述】:

我有一个数组,每个索引中有 3 个数据 变量

var data = @json($data)

输出

(6) [{…}, {…}, {…}, {…}, {…}, {…}]
0: {day: "Saturday", totalIncome: 0, totalExpense: 300}
1: {day: "Sunday", totalIncome: 0, totalExpense: 0}
2: {day: "Monday", totalIncome: 0, totalExpense: 0}
3: {day: "Tuesday", totalIncome: 0, totalExpense: 0}
4: {day: "Wednesday", totalIncome: 500, totalExpense: 0}
5: {day: "Thursday", totalIncome: 0, totalExpense: 0}
length: 6

我想做3个数组

var days = datas.day;
var incomes = datas.totalIncome;
var expenses = data.totalExpenses;

我现在应该怎么做才能从数据中创建这 3 个数组。请帮忙

【问题讨论】:

  • var data = @json($data) 看起来不像是有效的 JS?
  • 对 laravel php 有效。 php数组到js数组的转换
  • 那么 javascript 标签是干什么用的?
  • 您可以从中找到答案。谢谢

标签: javascript laravel


【解决方案1】:

在原版 JS 中可能是这样的:

const days = [], incomes = [], expenses = [];

for (let i = 0; i < data.length; i++) {
    days.push(data[i]["day"]);
    incomes.push(data[i]["totalIncome"]);
    expenses.push(data[i]["totalExpense"]);
}

【讨论】:

    【解决方案2】:

    将您的数据映射到新数组中。

    var days = datas.map(function(obj) {
        return obj['day'];
    });
    var incomes = datas.map(function(obj) {
        return obj['income'];
    });
    var expenses = datas.map(function(obj) {
        return obj['expenses'];
    });
    

    如果您安装了lodash

    var days = _.pluck(datas, 'day')
    

    【讨论】:

      【解决方案3】:

      使用原生的flatMap函数,例如:

          var groupBy = key => {
              return [
                 {day: "Saturday", totalIncome: 0, totalExpense: 300},
                 {day: "Sunday", totalIncome: 0, totalExpense: 0},
                 {day: "Monday", totalIncome: 0, totalExpense: 0},
                 {day: "Tuesday", totalIncome: 0, totalExpense: 0},
                 {day: "Wednesday", totalIncome: 500, totalExpense: 0},
                 {day: "Thursday", totalIncome: 0, totalExpense: 0}
              ].flatMap(v => v[key])
          }
      
      
          const days = groupBy('day')
          console.log(days)
      

      【讨论】:

        猜你喜欢
        • 2016-10-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多