我有一個帶有多個文本輸入的表單,我需要獲取輸入的名稱和值來生成一個物件。我不知道這是否可能,但到目前為止這是我的代碼:
function getData(){
const test = document.querySelectorAll('input')
test.forEach((item) => {
console.log('item:', item.name item.value)
//example
{
item.name = item.value
....
}
//example
})
}
我的意圖是 item.name 是物件的鍵名, item.value 是值。
uj5u.com熱心網友回復:
如果我正確理解了您的問題,那么您需要使用的是map陣列的功能。這個 w3schools 教程解釋了如何在你的情況下應用它:https ://www.w3schools.com/jsref/jsref_map.asp
uj5u.com熱心網友回復:
這將做:
function getData(){
const test = document.querySelectorAll('input')
const result = {}
test.forEach((item) => {
console.log('item:', item.name item.value)
result[item.name] = item.value
})
return result
}
您可以使用(幾乎)更少的代碼來獲得相同的結果test.reduce()
function getData(){
const test = document.querySelectorAll('input')
return test.reduce((result, item) => {
console.log('item:', item.name item.value)
result[item.name] = item.value
return result
}, {})
}
uj5u.com熱心網友回復:
您需要創建一個新物件,從中添加資料fromEach,然后將其回傳:
function getData(){
const test = document.querySelectorAll('input');
const returnObj = {};
test.forEach((item) => {
returnObj[item.name] = item.value;
})
return returnObj;
}
console.log(getData());
<input name="test1" value="blah1">
<input name="test2" value="blah2a">
<input name="test3" value="blah3b">
<input name="test4" value="blah4c">
<input name="test6" value="blah6">
uj5u.com熱心網友回復:
您可以Array通過將查詢結果傳遞給 來將結果轉換為Array.from,然后將陣列轉換為正在尋找以實作此結果map()的形狀 :Object.fromEntries()
function getData(){
const elements = document.querySelectorAll('input');
return Object.fromEntries(
Array.from(elements).map(
el => ([el.name, el.value])
)
);
}
console.log(getData());
<input name="test1" value="blah1">
<input name="test2" value="blah2a">
<input name="test3" value="blah3b">
<input name="test4" value="blah4c">
<input name="test6" value="blah6">
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/463438.html
標籤:javascript
上一篇:C#/VB.NET 獲取Excel中圖片所在的行、列坐標位置
下一篇:在React中正確使用自定義鉤子
