JS獲取對象長度全面解析

一、JS獲取JSON對象長度

JSON對象是一種數據格式,經常使用在網路傳輸和存儲中,因此獲取JSON對象長度也是編程中常見的需求。在JS中,獲取JSON對象長度可以使用for…in循環遍歷對象,代碼示例如下:

let jsonObj = {'a': 1, 'b': 2, 'c': 3};
let len = 0;
for (let key in jsonObj) {
  if (jsonObj.hasOwnProperty(key)) {
    len++;
  }
}

console.log(len); // 輸出:3

上述代碼中,我們使用for…in循環遍歷JSON對象的每個屬性,如果屬性是JSON對象自身屬性,就將對象長度加上1。最終變數len就是JSON對象的長度。

二、JS獲取對象的長度

除了JSON對象,JS中還有其他的對象類型。獲取對象長度的方法和獲取JSON對象長度的方法略有不同。我們可以先轉換成字元串,再使用length屬性獲取長度。代碼示例如下:

let obj = {a: 1, b: 2, c: 3};
let str = JSON.stringify(obj);
let len = str.length;

console.log(len); // 輸出:13

上述代碼中,我們使用JSON.stringify()方法將對象轉換成字元串。然後使用字元串的length屬性獲取對象長度。需要注意的是,對象轉換成字元串的過程會包含大括弧和逗號等字元,因此獲取的長度會比實際對象長度多一些。

三、JS獲取數組長度

數組是JS中常見的數據結構之一,也是對象類型。獲取數組的長度可以使用數組的length屬性。代碼示例如下:

let arr = [1, 2, 3];
let len = arr.length;

console.log(len); // 輸出:3

上述代碼中,我們使用數組的length屬性獲取數組的長度。

四、JS獲取位元組長度

獲取字元或字元串的位元組長度是編程中常見的需求之一。在JS中,可以使用encodeURI()和encodeURIComponent()方法來獲取字元或字元串的位元組長度。

encodeURI()通過將字元或字元串中的特殊字元進行解碼,返回一個新的字元串,代碼示例如下:

let str = 'a%26b';
let encodedStr = encodeURI(str);

console.log(encodedStr); // 輸出:a%26b
console.log(str.length); // 輸出:5
console.log(encodedStr.length); // 輸出:7

上述代碼中,我們將字元串’a%26b’使用encodeURI()方法進行編碼,得到的結果是字元串’a%26b’,從而保留了特殊字元’%’和’&’。由於字元編碼後變長,因此該字元串的位元組長度就變長了。

encodeURIComponent()方法與encodeURI()類似,但可以對所有非標準字元進行編碼。代碼示例如下:

let str = 'aあb';
let encodedStr = encodeURIComponent(str);

console.log(encodedStr); // 輸出:a%E3%81%82b
console.log(str.length); // 輸出:3
console.log(encodedStr.length); // 輸出:9

上述代碼中,我們將字元串’aあb’使用encodeURIComponent()方法進行編碼,得到的結果是字元串’a%E3%81%82b’,該編碼包含了非ASCII字元’あ’的Unicode編碼,因此該字元串的位元組長度就變長了。

五、JS獲取list長度

JS中沒有list類型,但常見的list是指以數組形式存儲的數據。因此,獲取list長度的方法同獲取數組長度一致。我們可以使用數組的length屬性。代碼示例如下:

let list = ['apple', 'banana', 'cherry'];
let len = list.length;

console.log(len); // 輸出:3

上述代碼中,我們使用數組的length屬性獲取list的長度。

六、JS判斷對象的長度

在編程中,我們有時需要判斷一個對象是否為空。可以使用for…in循環遍歷對象,並判斷對象長度是否為0。代碼示例如下:

let obj = {};
let len = 0;
for (let key in obj) {
  if (obj.hasOwnProperty(key)) {
    len++;
  }
}

if (len > 0) {
  console.log('對象不為空');
} else {
  console.log('對象為空');
}

上述代碼中,我們使用for…in循環遍歷對象的每個屬性,如果屬性是對象自身屬性,就將對象長度加上1。如果對象長度大於0,則表示對象不為空。否則表示對象為空。

七、JS獲取列表長度

獲取列表的長度即獲取數組長度。可以使用數組的length屬性。代碼示例如下:

let arr = [1,2,3];
let len = arr.length;

console.log(len); // 輸出:3

八、JS對象長度

JS中的對象長度包含屬性和方法的數量。可以使用for…in循環遍歷對象,並使用Object.keys()方法獲取對象的屬性集合。代碼示例如下:

let obj = {a: 1, b: 2, c: 3};
let keys = Object.keys(obj);
let len = keys.length;

console.log(len); // 輸出:3

上述代碼中,我們使用for…in循環遍歷對象,並使用Object.keys()方法獲取對象的屬性集合。最終變數len就是對象的長度。

原創文章,作者:ROGH,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/131877.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
ROGH的頭像ROGH
上一篇 2024-10-03 23:48
下一篇 2024-10-03 23:48

相關推薦

  • JS Proxy(array)用法介紹

    JS Proxy(array)可以說是ES6中非常重要的一個特性,它可以代理一個數組,監聽數據變化並進行攔截、處理。在實際開發中,使用Proxy(array)可以方便地實現數據的監…

    編程 2025-04-29
  • Python應用程序的全面指南

    Python是一種功能強大而簡單易學的編程語言,適用於多種應用場景。本篇文章將從多個方面介紹Python如何應用於開發應用程序。 一、Web應用程序 目前,基於Python的Web…

    編程 2025-04-29
  • Python zscore函數全面解析

    本文將介紹什麼是zscore函數,它在數據分析中的作用以及如何使用Python實現zscore函數,為讀者提供全面的指導。 一、zscore函數的概念 zscore函數是一種用於標…

    編程 2025-04-29
  • 全面解讀數據屬性r/w

    數據屬性r/w是指數據屬性的可讀/可寫性,它在程序設計中扮演著非常重要的角色。下面我們從多個方面對數據屬性r/w進行詳細的闡述。 一、r/w的概念 數據屬性r/w即指數據屬性的可讀…

    編程 2025-04-29
  • Python計算機程序代碼全面介紹

    本文將從多個方面對Python計算機程序代碼進行詳細介紹,包括基礎語法、數據類型、控制語句、函數、模塊及面向對象編程等。 一、基礎語法 Python是一種解釋型、面向對象、動態數據…

    編程 2025-04-29
  • 面向對象編程、類和對象

    面向對象編程(Object-Oriented Programming, OOP)是一種編程方法,它將現實世界中的事物抽象為對象(Object),對象的屬性和方法被封裝成類(Clas…

    編程 2025-04-29
  • 解析js base64並轉成unit

    本文將從多個方面詳細介紹js中如何解析base64編碼並轉成unit格式。 一、base64編碼解析 在JavaScript中解析base64編碼可以使用atob()函數,它會將b…

    編程 2025-04-29
  • Node.js使用Body-Parser處理HTTP POST請求時,特殊字元無法返回的解決方法

    本文將解決Node.js使用Body-Parser處理HTTP POST請求時,特殊字元無法返回的問題。同時,給出一些相關示例代碼,以幫助讀者更好的理解並處理這個問題。 一、問題解…

    編程 2025-04-29
  • Matlab二值圖像全面解析

    本文將全面介紹Matlab二值圖像的相關知識,包括二值圖像的基本原理、如何對二值圖像進行處理、如何從二值圖像中提取信息等等。通過本文的學習,你將能夠掌握Matlab二值圖像的基本操…

    編程 2025-04-28
  • t3.js:一個全能的JavaScript動態文本替換工具

    t3.js是一個非常流行的JavaScript動態文本替換工具,它是一個輕量級庫,能夠很容易地實現文本內容的遞增、遞減、替換、切換以及其他各種操作。在本文中,我們將從多個方面探討t…

    編程 2025-04-28

發表回復

登錄後才能評論