1. 程式人生 > >JS 計算Object長度

JS 計算Object長度

在我們日常開發中,物件的使用頻率很高,我們計算陣列的長度是非常方便的,但是如何計算物件的長度呢?
假如我們有一個圖書館的專案,專案中有一組圖書和作者,像下面這樣:

var bookAuthors = {
	"Farmer Giles of Ham": "J.R.R. Tolkien",
	"Out of the Silent Planet": "C.S. Lewis",
	"The Place of the Lion": "Charles Williams",
	"Poetic Diction": "Owen Barfield"
};

我們分析現在的需求,我們給一個API傳送資料,但是書的長度不能超過100,因此我們需要在傳送資料之前計算在一個物件中總共有多少本書。那麼我們總怎麼做呢?我們可能會這樣做:

function countProperties (obj) {
    var count = 0;
    for (var property in obj) {
        if (Object.prototype.hasOwnProperty.call(obj, property)) {
            count++;
        }
    }
    return count;
}

var bookCount = countProperties(bookAuthors);

// Outputs: 4
console.log(bookCount);
這是可以實現的,幸運的是Javascript提供了一個更改的方法來計算物件的長度:
var bookAuthors = {
    "Farmer Giles of Ham": "J.R.R. Tolkien",
    "Out of the Silent Planet": "C.S. Lewis",
    "The Place of the Lion": "Charles Williams",
    "Poetic Diction": "Owen Barfield"
};
var arr = Object.keys(bookAuthors);

//Outputs: Array [ "Farmer Giles of Ham", "Out of the Silent Planet", "The Place of the Lion", "Poetic Diction" ]
console.log(arr);

//Outputs: 4
console.log(arr.length);

下面我們來對陣列使用keys方法:
var arr = ["zuojj", "benjamin", "www.zuojj.com"];

//Outputs: ["0", "1", "2"]
console.log(Object.keys(arr));

//Outputs: 3
console.log(arr.length);

Object.keys() 方法會返回一個由給定物件的所有可列舉自身屬性的屬性名組成的陣列,陣列中屬性名的排列順序和使用for-in迴圈遍歷該物件時返回的順序一致(兩者的主要區別是 for-in 還會遍歷出一個物件從其原型鏈上繼承到的可列舉屬性)。

相關推薦

JS 計算Object長度

在我們日常開發中,物件的使用頻率很高,我們計算陣列的長度是非常方便的,但是如何計算物件的長度呢? 假如我們有一個圖書館的專案,專案中有一組圖書和作者,像下面這樣: var bookAuthors = { "Farmer Giles of Ham": "J.R.R. T

JS計算位元組長度and依照位元組長度進行擷取的方法

話不多說,直接上程式碼 // 計算字串的位元組長度 export function lengthOfByte(str){ let len = 0; for(let i=0;i<str.l

JS 計算一個物件/Object長度

在我們日常開發中,物件的使用頻率很高,我們計算陣列的長度是非常方便的,但是如何計算物件的長度呢?假如我們有一個圖書館的專案,專案中有一組圖書和作者,像下面這樣:[javascript] view plain copyvar bookAuthors = {      "Farmer Giles of Ham":

js 關聯陣列長度計算

//關聯陣列長度 function getObjLength(obj){ var count=0; for(var name in obj){ if(typeof obj[name] == "o

html5 表單 填表 select 下拉 textarea多行文本 output Js計算結果

size area 如果 out ctrl select png 多行文本 賦值 <select> 下拉 <select>下有很多屬性 name 其實有name就有value了,因為button提交的都是? nam

JS計算網頁停留時間

min art gb2312 post += js計算 tracking article value <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "

Js計算時間差(天、小時、分鐘、秒)

天數 log clas text java 分鐘 style cond ext <script type="text/javascript"> var date1= ‘2015/05/01 00:00:00‘; //開始時間

js計算當前日期上一個月和下一個月

pre 日期 下一個 測試 -s digg rem bind popu /** * 獲取上一個月 * * @date 格式為yyyy-mm-dd的日期,如:2014-01-25 */ functi

Js計算時間差,天數,小時數,余數

時間 .com leave date() cnblogs get 根據 差分 結果 var begintime_ms = Date.parse(new Date(begintime.replace(/-/g, "/"))); //begintime 為開始時間

js emoji表情長度判斷

arr sym 退出 this smo com last || 設置 1、需求:輸入框長度限制為10個字符,包括表情。超出長度提示。 註:iPhone手機自定義的表情,有四個小人的,三個小人的,主要是長度還都不一樣。有的表情可能一個就超出了長度限制(10),比如??????

Vue.js 計算屬性

.com 相關 ive 都是 aid his ejs value body Vue.js 計算屬性 使用計算屬性的實例: <!DOCTYPE html> <html> <head> <meta cahrset

js——計算平方

獲取 isn 判斷 click isnan value rip 是否為數字 func <!DOCTYPE html><html><head><meta charset="UTF-8"><title>Insert t

js計算兩個矩形相交

utf char Y軸 lang cli epo ava log function <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8" /> <

*1033 計算線段長度

exp 其中 常用 mes eba emma banner sin module 1 #include<cstdio> 2 #include<cmath>//調用sqrt函數必須包含cmath頭文件 3 using namespace st

js 計算請假時長(去除了周六日,節假日未清除)

cli orm ken 除了 gin ## rtt cep ref js 計算請假時長(去除了周六日,節假日未清除) 2017-12-26 亦皓 <!DOCTYPE html> <html> <head> <title>

js計算數組的總和

pos turn sum post text script brush highlight array <script type="text/javascript"> var nums = [1,2,3,4,5]; //計算數組的總和 var sum =

微信小程序-jsobject添加屬性

添加 沒有 PE 程序 == prop 小程序 CA div 代碼如下: var my_set = result.attributes.my_set; if (my_set == undefined) { my_set = { is_be_agree: e.detail.v

Vue.js計算屬性

vue.js 計算屬性 computed 一、計算屬性誕生的由來 雖然在模板中綁定表達式是非常便利的,但是它們實際上只用於簡單的操作。在模板中放入太多的邏輯會讓模板過重且難以維護。比如: <div id="example"> {{ messa

js 計算兩個時間戳之間相隔天數

時間戳 sta var color pre div 天數 code class var start=1491789600000;//2017-4-10 10:00 var end=1494381600000;//2017-5-10 10:00 var utc=end-

js計算日期相差天數

logs [1] edi UNC .com script parse var function function DateDiff(sDate1, sDate2) { //sDate1和sDate2是2017-9-25格式 var aDate, oDat