欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

如何使用不同的方法在 JavaScript 中添加兩個(gè)向量

 更新時(shí)間:2023年06月07日 10:01:45   作者:跡憶客  
這篇文章主要介紹了如何在 JavaScript 中添加向量(Vector)類(lèi),使用不同的方法在 JavaScript 中添加兩個(gè)向量,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下

本篇文章將介紹如何使用不同的方法在 JavaScript 中添加兩個(gè)向量。

在 JavaScript 中使用 for 循環(huán)添加向量類(lèi)

您可以使用 for 循環(huán)在 JavaScript 中添加兩個(gè)向量。 同時(shí),向量應(yīng)該是 JavaScript 數(shù)組。

定義一個(gè)構(gòu)造函數(shù),它將執(zhí)行加法并返回結(jié)果以開(kāi)始。 最好將加法函數(shù)與構(gòu)造函數(shù)分開(kāi)編寫(xiě),以使代碼干凈并可在其他項(xiàng)目中重用。

加法函數(shù)應(yīng)該起作用,以便第一個(gè)向量可以在第二個(gè)向量上調(diào)用它。

因此,第一個(gè)向量是調(diào)用者,第二個(gè)是被調(diào)用者。 因此,加法函數(shù)應(yīng)按如下方式工作:

  • 確保參數(shù)是相同長(zhǎng)度的數(shù)組。 參數(shù)是第一個(gè)向量(調(diào)用者)和第二個(gè)數(shù)組(被調(diào)用者)。
  • 構(gòu)造一個(gè)空數(shù)組來(lái)存儲(chǔ)向量加法的最終結(jié)果。
  • 循環(huán)調(diào)用者數(shù)組。
  • 使用循環(huán)索引添加調(diào)用方數(shù)組和被調(diào)用方數(shù)組元素。
  • 將結(jié)果推入步驟 1 創(chuàng)建的空數(shù)組。因此,它不再為空,因?yàn)樗哂屑臃ǖ慕Y(jié)果。
  • 使用新數(shù)組返回構(gòu)造函數(shù)的新實(shí)例。
  • 如果在此過(guò)程中出現(xiàn)問(wèn)題,請(qǐng)返回錯(cuò)誤。

下面的代碼是這些步驟的實(shí)現(xiàn)。 我們實(shí)施了額外的檢查,以確保用戶(hù)傳遞正確的矢量值。

我們添加了兩個(gè)向量來(lái)測(cè)試向量加法并將結(jié)果記錄到 Web 瀏覽器的控制臺(tái)。

代碼:

function Vector(arg) {
    this.array = arg;
    this.add = add;
}
function add(called_array) {
    if (Array.isArray(this.array) && Array.isArray(called_array.array)) {
        if (this.array.length === called_array.array.length) {
            let result = [];
            for (let i = 0; i < this.array.length; i++) {
                if (typeof(this.array[i]) == "number" && typeof(called_array.array[i]) == "number") {
                    result.push(this.array[i] + called_array.array[i]);
                } else {
                    result.push("Invalid vector value");
                }
            }
            return new Vector(result);
        } else {
            return new Vector("The vectors are not the same length.");
        }
    } else {
        return new Vector("One of your arguments or both of them is not an array.");
    }
}
let caller_array = new Vector([3,5,7]);
let called_array = new Vector ([5,2,9]);
console.log(caller_array.add(called_array).array);

輸出:

Array(3) [ 8, 7, 16 ]

在 JavaScript 中使用 Array.proyotype.map() 添加向量類(lèi)

使用 Array.prototype.map() 添加向量需要向量本身是 JavaScript 數(shù)組。 與上一節(jié)類(lèi)似,第一個(gè)數(shù)組應(yīng)該是調(diào)用者。

這意味著我們將定義一個(gè)有助于添加的構(gòu)造函數(shù)。 但是,我們不會(huì)將 add() 函數(shù)與構(gòu)造函數(shù)分開(kāi)定義。

這一次,我們將使 add() 函數(shù)成為構(gòu)造函數(shù)原型的一部分。

add() 函數(shù)將返回構(gòu)造函數(shù)的新實(shí)例。 然而,這個(gè)新實(shí)例的參數(shù)是調(diào)用數(shù)組在被調(diào)用數(shù)組上使用自定義函數(shù) Array.prototype.map() 的結(jié)果。

自定義函數(shù)執(zhí)行數(shù)組的添加。

我們使用 Array.prototype.map() 在下面的代碼中添加向量。 在此過(guò)程中,我們檢查了參數(shù)是否為相同長(zhǎng)度的數(shù)組。

除此之外,代碼會(huì)拋出 TypeError。

代碼:

var Vector = function (arg){
    this.array = arg;
};
Vector.prototype.add = function(called_array){
    called_array = called_array.array;
    let caller_array = this.array;
    if (Array.isArray(caller_array) && Array.isArray(called_array)) {
        if (caller_array.length !== called_array.length) {
            throw new TypeError("Vectors have different length");
        }
    } else {
        return new Vector("One of your arguments or both of them is not an array.");
    }
    return new Vector(caller_array.map(
        function (caller_array_element, called_array_element) {
            if (typeof(caller_array_element) == "number" && typeof(called_array_element) == "number") {
                return caller_array_element + called_array[called_array_element];
            } else {
                return 'Invalid Vector value';
            }
    }));
}
let caller_array = new Vector([9,8,5]);
let called_array = new Vector ([2,5,8]);
console.log(caller_array.add(called_array).array);

輸出:

Array(3) [ 11, 13, 13 ]

在 JavaScript 中使用 ES6 類(lèi)添加向量類(lèi)

使用 ES6 類(lèi)添加向量背后的基本邏輯是自定義 add() 函數(shù),它使用 for 循環(huán)添加向量并返回 ES6 類(lèi)的新實(shí)例。 在添加向量之前,請(qǐng)確保將它們存儲(chǔ)在一個(gè)數(shù)組中。

之后,第一個(gè)數(shù)組應(yīng)該在第二個(gè)數(shù)組上調(diào)用 add() 函數(shù)。

我們?cè)谝韵麓a中有一個(gè) ES6 類(lèi),它使用 add() 函數(shù)添加兩個(gè)數(shù)組。 添加后,它將添加的結(jié)果傳遞給 ES6 類(lèi)的新實(shí)例。

代碼:

class Vector {
    constructor(arr) {
        this.arr = arr;
    }
   add(called_array) {
       let caller_array = called_array.arr;
       if (Array.isArray(this.arr) && Array.isArray(caller_array)) {
           if (this.arr.length === caller_array.length) {
               let result = [];
               for (let key in this.arr) {
                   if (typeof(this.arr[key]) == "number" && typeof(caller_array[key]) == "number") {
                       result[key] = this.arr[key] + caller_array[key];
                   } else {
                       result[key] = "Invalid Vector Value.";
                   }
               }
               return new Vector(result);
           } else {
               return new Vector('The vectors are not the same length.');
           }
       } else {
           return new Vector("One of your arguments or both of them is not an array.");
       }
   }
}
let caller_array = new Vector([3,6,0]);
let called_array = new Vector ([1,5,0]);
console.log(caller_array.add(called_array).arr);

輸出:

Array(3) [ 4, 11, 0 ]

通過(guò)在 JavaScript 中擴(kuò)展 Array 類(lèi)來(lái)添加 Vector 類(lèi)

您可以創(chuàng)建一個(gè)擴(kuò)展 JavaScript 原生 Array 類(lèi)的矢量類(lèi)。 因此,向量類(lèi)應(yīng)該實(shí)現(xiàn)一個(gè)函數(shù)來(lái)添加向量。

第一個(gè)向量可以調(diào)用第二個(gè)向量上的函數(shù)。 結(jié)果,您將得到加法的結(jié)果。

在下面的代碼中,我們擴(kuò)展了原生 Array 類(lèi)并使用 map() 函數(shù)遍歷調(diào)用的數(shù)組。 然后,我們可以將它的元素添加到調(diào)用者數(shù)組中并產(chǎn)生一個(gè)結(jié)果。

代碼:

class Vector extends Array {
    add(called_array) {
        if (this.length == called_array.length) {
            return this.map((caller_array_element, called_array_element) => {
                if (typeof(caller_array_element) == "number" && typeof(called_array_element) == "number"){
                    return caller_array_element + called_array[called_array_element];
                } else {
                    return 'Invalid Vector value';
                };
            })
        } else {
            return "The vectors are not the same length.";
        }
    }
}
let caller_array = new Vector(1, 2, 4);
let called_array = new Vector(3, 9, 20);
console.log(caller_array.add(called_array));

輸出:

Array(3) [ 4, 11, 24 ]

到此這篇關(guān)于如何在 JavaScript 中添加向量(Vector)類(lèi)的文章就介紹到這了,更多相關(guān)js 添加向量(Vector)類(lèi)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論