#javascript #arrays #object
#javascript #массивы #объект
Вопрос:
У меня есть массив объектов, на данный момент внутри есть только один объект. В этом объекте у меня есть функция, которая определяет некоторые свойства одного и того же объекта. Я печатаю с помощью цикла компоненты, но функция не обрабатывается, и возвращается строка. Как я могу получить результат?
let arrMaterie = [
{
name: "...",
a: 4,
b: 75,
functionTest: function test() {
return this.a this.b;
}
}
];
for (let i in arrMaterie) {
for (let j in arrMaterie[i]) {
test.innerHTML = arrMaterie[i][j];
}
}
ВЫВОД …475функция test() { return this.a — this.b }
и не …-4-75-79
Комментарии:
1. пожалуйста, покажите, как вы вызываете функцию
2. Я не вижу, чтобы функция вызывалась где угодно.
Ответ №1:
Вам нужно будет определить, является ли свойство функцией, и если это так, вызовите его с ()
помощью — so что-то вроде:
let arrMaterie = [
{
name: "...",
a: 4,
b: 75,
functionTest: function test() {
return this.a this.b;
}
}
];
const test = document.getElementById("test");
for (let i in arrMaterie) {
for (let j in arrMaterie[i]) {
if(typeof arrMaterie[i][j] == "function"){
test.innerHTML = arrMaterie[i][j]();
}
else{
test.innerHTML = arrMaterie[i][j];
}
}
}
<div id="test"></div>