Для циклов и счетчиков регистрации в наблюдаемых записных книжках - PullRequest
1 голос
/ 28 мая 2020

Я пытаюсь пройти l oop через массив и напечатать номер счетчика для каждого объекта в этом массиве. Я начинаю со следующего logi c:

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

В Observable Notebooks (observablehq) это возвращает «undefined». Итак, я не получаю никаких сообщений о печати. Я надеюсь передать это logi c в l oop через объекты в массиве и подсчитать каждый объект. Но я застрял, просто пытаясь использовать счетчик!

Я также пробовал это:

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

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

Это также возвращает undefined.

1 Ответ

1 голос
/ 28 мая 2020

console.log отлично работает внутри Observable. Не уверен, что это была опечатка, но print(i) не метод javascript, вы имели в виду console.log? если вы попробуете приведенный ниже фрагмент и откроете инструменты разработчика, вы увидите напечатанные строки.

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

Однако помните, что внутри Observable у вас есть другой вид javascript.

Observable не JavaScript

Он возвращает undefined, потому что вы не называете ячейки.

Если я понимаю ваши потребности, перебираем там массив объектов. Сначала назовите ячейку с вашими данными, вы также можете получить их откуда-то еще. Затем другая ячейка, использующая эти данные. Вот вымышленный случай:

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}

Дополнительная информация в их руководстве пользователя

...