इस ईएस वर्ग के भीतर "साइडलेंथ" के मूल्य के साथ और "पक्षों" के समय के साथ एक ऐरे बनाने के इस परिदृश्य के लिए इस कोड पर विचार करें, लेकिन मुझे एक खाली सरणी मिल रही है !! यह रहा कोडपेन लिंक

class ShapeNew {
  constructor(name, sides, sideLength) {
    this.name = name;
    this.sides = sides;
    this.sideLength = sideLength;
  }
  tryArray() {
    let sides_array = [];
    for (let i = 0; i < this.sides; i++) {
      sides_array = sides_array.push(this.sideLength);
    }
    return sides_array;
  }
  newPerimeter() {
    let peri = this.tryArray();
    console.log(peri.reduce((sum, accum) => sum + accum));
  }
}
let new_square = new ShapeNew("square", 4, 5);
new_square.newPerimeter();

मैं केवल 4 को [5,5,5,5] में बदलने की कोशिश कर रहा हूं, मैं यह कैसे कर सकता हूं?

इसे देखने के लिए अग्रिम धन्यवाद, मैं इसकी सराहना करता हूं :)

0
abappy 18 अक्टूबर 2020, 19:53

2 जवाब

सबसे बढ़िया उत्तर

क्या तुम्हे यह चाहिए

sides_array.push(this.sideLength);

यह नहीं

sides_array = sides_array.push(this.sideLength);

क्योंकि Array.push() कुछ भी वापस नहीं करता है।

1
symlink 18 अक्टूबर 2020, 19:58

आप वेरिएबल sides_array को एक नए तत्व को धक्का देने के लौटाए गए मान को असाइन कर रहे हैं जो नई लंबाई है, इसके बजाय हर बार तत्व को धक्का दें

class ShapeNew {
  constructor(name, sides, sideLength) {
    this.name = name;
    this.sides = sides;
    this.sideLength = sideLength;
  }
  tryArray() {
    let sides_array = [];
    for (let i = 0; i < this.sides; i++) {
      sides_array.push(this.sideLength);
    }
    return sides_array;
  }
  newPerimeter() {
    let peri = this.tryArray();
    console.log(peri.reduce((sum, accum) => sum + accum));
  }
}
let new_square = new ShapeNew("square", 4, 5);
new_square.newPerimeter();

लेकिन मैं सोच रहा था, अगर आप जो करना चाहते हैं वह सिर्फ परिधि की गणना कर रहा है, तो आप पक्ष की लंबाई के साथ पक्षों को गुणा क्यों नहीं करते?!

class ShapeNew {
  constructor(name, sides, sideLength) {
    this.name = name;
    this.sides = sides;
    this.sideLength = sideLength;
  }
  perimeter() {
    return this.sideLength * this.sides;
  }
}

let new_square = new ShapeNew("square", 4, 5);
console.log(new_square.perimeter());
1
SaymoinSam 18 अक्टूबर 2020, 20:18