可观察笔记本中的循环和记录计数器

For Loops and Logging Counters in Observable Notebooks

我正在尝试遍历一个数组,并为该数组中的每个对象打印一个计数器编号。我从以下逻辑开始:

{for (let i = 0; i < 10; i++){
   print(i)}
}

在 Observable Notebooks (observablehq) 中,这个 returns "undefined"。所以,我没有得到任何打印语句。我希望将此逻辑转移到循环遍历数组中的对象,并对每个对象进行计数。但是,我坚持只是尝试使用计数器!

我也试过这个:

import {log} from '@sorig/console-log-without-leaving-your-notebook'

{for (let i = 0; i < 10; i++){
   console.log(i)}
}

这也是returns'undefined'。

console.log 在 Observable 中工作正常。我不确定是否是错字,但 print(i) 不是 javascript 方法,您是说 console.log 吗?如果您尝试下面的代码片段并打开开发者工具,您将看到打印的行。

unamedcell = {
  for (let i = 0; i < 10; i++){
    console.log(i);
  }
}

但是,请记住,在 Observable 内部,您有不同风格的 javascript。

Observable’s not JavaScript

它 returns 未定义,因为您没有命名单元格。

如果我理解你的需要,循环遍历那里的对象数组。首先用你的数据命名一个单元格,你也可以从其他地方获取。然后另一个单元格使用该数据 这是一个虚构的案例:

data = {
  // your data
  const myObjects = [
    { a: 10, b: 20 },
    { a: 1, b: 2 },
    { a: 1, b: 5 },
    { a: 2, b: 10 }
  ];
  return myObjects;
}
// data = Array(4) [Object, Object, Object, Object]

然后另一个单元格

dataExample = {
  let asum = 0;
  let bsum = 0;
  for (let i = 0; i < data.length; i++) {
    asum += data[i].a;
    bsum += data[i].b;
  }
  return { asum, bsum };
}
// dataExample = Object {asum: 14, bsum: 37}

更多关于他们的信息 user manual