使用Javascript從一個陣列中檢查任何物件是否具有某些值時出現錯誤。我在下面解釋我的代碼。
let arr = [
{
"config": "as",
"payload": ""
},
{
"config": "as",
"payload": "xc"
},
{
"config": "",
"payload": "xc"
},
{
"config": "",
"payload": ""
}
]
let isNext = true;
for(let i=0; i < arr.length; i ) {
if(arr[i].config !== '' || arr[i].payload !=='') {
isNext = false
return;
}else{
isNext = true;
}
}
console.log('next', isNext);
這里我有一個array of object,每個物件有 2 個key-value pair。我需要里面陣列將檢查物件的任何一個具有這兩個一定的價值config或payload然后isNext將虛假的其他明智的將是真實的。但根據此代碼,我收到以下錯誤。
Uncaught SyntaxError: Illegal return statement"
請幫我解決這個問題。
uj5u.com熱心網友回復:
return如果您試圖轉義 for 回圈,則不應在函式作用域之外使用break陳述句。
uj5u.com熱心網友回復:
中斷回圈而不是使用 return,return 關鍵字用于從方法回傳值
回傳 MDN
let arr = [
{
"config": "as",
"payload": ""
},
{
"config": "as",
"payload": "xc"
},
{
"config": "",
"payload": "xc"
},
{
"config": "",
"payload": ""
}
]
let isNext = true;
for(let i=0; i < arr.length; i ) {
if(arr[i].config !== '' || arr[i].payload !=='') {
isNext = false
break;
}else{
isNext = true;
}
}
console.log('next', isNext);
uj5u.com熱心網友回復:
你的代碼很奇怪,因為你沒有結果。
也許您想從陣列中找到第一個合適的物件?
所以代碼將是:
const arr = [
{
"config": "as",
"payload": ""
},
{
"config": "as",
"payload": "xc"
},
{
"config": "",
"payload": "xc"
},
{
"config": "",
"payload": ""
}
];
let result = null;
let isNext = true;
for(let i=0; i < arr.length; i ) {
if(arr[i].config !== '' || arr[i].payload !=='') {
isNext = false
result = arr[i];
break;
}else{
isNext = true;
}
}
console.log('my result', result);
或者您想檢查是否有任何元素適合您可以制作的條件:
const result = arr.some(el => el.config || el.payload);
或者你可以找到并回傳第一個合適的元素:
const result = arr.find(el => el.config || el.payload);
uj5u.com熱心網友回復:
在您的代碼中,您可以替換 break 的 return ,因此一旦條件滿足,它將從回圈中退出。
for(let i=0; i < arr.length; i ) {
if(arr[i].config !== '' || arr[i].payload !=='') {
isNext = false
break;
}else{
isNext = true;
}
}
使用 break 退出回圈。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/310030.html
標籤:javascript
上一篇:將資料從回應發送到html
下一篇:禁用W3.CSS懸停下拉選單
