簡體   English   中英

獲取 JavaScript 數組的鍵和值到變量中

[英]Get key and value of a JavaScript array into variable

我有一個 JavaScript 對象數組。 當編寫console.log(myarry) ,它將以下面的形式顯示在控制台中。

Array[2]
0: Object
one: "one"

1: Object
two: "two"
length: 2

在這個數組中,我的鍵和值是相同的,我試圖將鍵或值獲取到一個變量並打印它。 當我嘗試下面的代碼時,它顯示:

對象 對象

for (var key in myarry) {
 alert("Key is " + key + ", value is" + myarry[key]);
}

檢查這個片段

 var obj = [{ "1": "one" }, { "2": "two" }] obj.forEach(function(item) { Object.keys(item).forEach(function(key) { console.log("key:" + key + "value:" + item[key]); }); });

希望它有幫助

  • 使用for-loop而不是for-in來迭代數組。

  • 使用Object.keys獲取object

 var arr = [{ one: 'one' }, { two: 'two' }]; for (var i = 0, l = arr.length; i < l; i++) { var keys = Object.keys(arr[i]); for (var j = 0, k = keys.length; j < k; j++) { console.log("Key:" + keys[j] + " Value:" + arr[i][keys[j]]); } }

我認為您有兩個主要選項可以使用Object.keys獲取對象的鍵,它們是: forEach 或簡單的for

1. 使用forEach

如果您使用的環境支持 ES5 的Array功能(直接或使用墊片),您可以使用新的forEach

 var myarray = [{one: 'one'}, {two: 'two'}]; myarray.forEach(function(item) { var items = Object.keys(item); items.forEach(function(key) { console.log('this is a key-> ' + key + ' & this is its value-> ' + item[key]); }); });

forEach接受一個迭代器函數和一個可選的值,在調用該迭代器函數(上面沒有使用)時用作this 為數組中的每個條目依次調用迭代器函數,跳過稀疏數組中不存在的條目。 雖然

forEach的好處是您不必在包含范圍內聲明索引和值變量,因為它們是作為迭代函數的參數提供的,並且很好地限定在該迭代中。

如果您擔心為每個數組條目進行函數調用的運行時成本,請不要擔心; 技術細節

2. 使用簡單的for

有時舊的方法是最好的:

 var myarray = [{one: 'one'}, {two: 'two'}]; for (var i = 0, l = myarray.length; i < l; i++) { var items = myarray[i]; var keys = Object.keys(items); for (var j = 0, k = keys.length; j < k; j++) { console.log('this is a key-> ' + keys[j] + ' & this is its value-> ' + items[keys[j]]); } }

根據您的構造,您可以

const arr = [{ key1: 'val1' }, { key2: 'val2' }]

arr.forEach((a, i) =>
  console.log(i, [{ key: Object.keys(a) }, { val: Object.values(a) }])
)

並回答你的問題

arr.forEach((a, i) =>
  alert("Key is "+ Object.keys(a) + ", value is " +  Object.values(a))
)

我正在嘗試獲取變量的鍵或值並打印它。

那么你可以

 var myarry = [{ one: 'one' }, { two: 'two' }]; for (var key in myarry) { var value = myarry[key]; console.log(key, value) }

你可以這樣做

 const a = [{ one: 'one' }, { two: 'two' }]; a.forEach(function(value,key) { console.log(value,key); });

您可以在變量中獲取鍵和值並使用它們。

這是一個有趣的方法。

 const arr = [{ one: 'one' }, { two: 'two' }]; Object.entries(arr).forEach(([_, obj]) => { const key = Object.keys(obj)[0]; console.log(`Key is ${key}, value is ${obj[key]}.`); });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM