Как исправить выведение [object Object] из функции?

Есть определённая функция, которая генерирует массив координат, и выводит массив через return
На выходе получается что-то типо
[(a[1], b[1]),(a[2], b[2]),(a[3], b[3]),(a[4], b[4])..)
Но когда я пытаюсь вызвать этот массив(Использовать функцию), то оно выводит вместо правильного массива - [object Object]
Как можно преобразовать этот [object Object] в форму массива? И возможно ли это?
(Если нет, то как тогда выводить из функции массив?)
var pi = Math.PI
function cos(e) {
  return Math.cos(e / 180 * Math.PI)
}
function sin(e) {
  return Math.sin(e / 180 * Math.PI)
}
function PointsInCircum(r,n) {
    var a = {}
    var b = {}
    var c = {}
    for (var x = 0; x < (n+1); x++) {
        a[x] = [(Math.round(cos(2*pi/n*x)*r))]
        b[x] = [(Math.round(sin(2*pi/n*x)*r))]
    for( i in a.length) {
        c[i] = [(a[i],b[i])]
    }
    return c
    }
}
  • Вопрос задан
  • 217 просмотров
Пригласить эксперта
Ответы на вопрос 1
vabka
@vabka
Токсичный шарпист
for( i in a.length) {
        c[i] = [(a[i],b[i])]
    }

На этих строчках у вас дичь какая-то. Этот цикл ни разу не выполнится.
=> вернётся пустой объект.

Наверно, нужно было написать что-то типа:
const pi = Math.PI
function cos(e) {
  return Math.cos(e / 180 * Math.PI)
}
function sin(e) {
  return Math.sin(e / 180 * Math.PI)
}
function PointsInCircum(r,n) {
    const result = [];
    for (let x = 0; x < n; x++)
        result.push([Math.round(cos(2*pi/n*x)*r),Math.round(sin(2*pi/n*x)*r)]);
    return result;
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы