【问题标题】:print values of all items in array JAVASCRIPT / d3打印数组 JAVASCRIPT / d3 中所有项目的值
【发布时间】:2017-07-07 20:51:14
【问题描述】:

对不起,如果有点菜鸟:

我有一个 csv 文件变成了具有属性值二重奏的数组。

console.log(data);
console.log(data[0].property_name);
console.log(data.property_name);

第一行和第二行完美运行 第三行不起作用(返回未定义)

【问题讨论】:

  • 因为data是一个数组,而数组的元素具有property_name属性,而不是数组
  • 获取 console.log 数组所有元素的 property_name 的最佳做法是什么?
  • console.log(data.map(function(item){return item.property_name}));

标签: javascript arrays d3.js


【解决方案1】:

数据是一个数组。数组中的每个元素可能都有一个 property_name。因此 data[0] 或数组中的第一个元素可以正常工作。如果您想打印出所有值,请使用 for 循环或 foreach 循环,或者将每个值打印出来,如...

console.log(data[0].property_name);
console.log(data[1].property_name);

For循环

for (i = 0; i < data.length; i++) {
    console.log(i);
    console.log(data[i].property_name);
}

【讨论】:

  • 谢谢 :) 我希望有一种比使用循环“更好”的方式。
  • 如果你认为循环不好,那么编程就会很粗糙。
  • 它们非常好,但有些功能可以更好:)
  • 你需要习惯循环。它们实际上是编程的基础之一。用索引打印出来并不丢人,但您将在以后学习理解循环和调试代码的位置时节省时间。
【解决方案2】:

使用 d3 从 csv 获取数据后,您将获得一个对象 prop/val。您可以使用 Object.values 从道具中获取值。

var csv = {
  city: "seattle",
  state: "WA",
  population: "652405",
  landarea: "83.9"
};
console.log(Object.values(csv));

对于一个对象数组

var csv = [{
  city: "seattle",
  state: "WA",
  population: "652405",
  landarea: "83.9"
}, {
  city: "moSat",
  state: "moWA",
  population: "mo652405",
  landarea: "mo83.9"
}];

var val = csv.map(x => Object.values(x));
console.log(val);

【讨论】:

  • 我的 CSV 创建了 5 个对象,每个对象都有自己的几个对象/值对。 obj1 名称:a 大小:7 obj2 名称:b 大小:5... 我能够用基于 d3 的函数来表示一个简单的数组(var array = [4, 6, 2...])。我希望在 csv 文件中的 VALUES 上使用相同的函数,这可能吗?
  • 没关系,你可以以同样的方式使用它,这完全取决于你的 CSV 是如何设置的。我会更新我的答案给你看
猜你喜欢
  • 2020-09-29
  • 2020-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-31
  • 2012-12-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多