簡體   English   中英

我想為數組的每個值添加一個字符串,如下面的代碼。 但我不想使用太多 if 運算符

[英]I want to put a string to each value of array like the code below. But i don't want to use too many if operators

我想像最接近的(數字,數組)[42] = "Sweets"; 但它不起作用。 如果操作符不寫太多,我怎樣才能讓它工作?

 function closest (num, arr) { var curr = arr[0]; var diff = Math.abs (num - curr); for (var val = 0; val < arr.length; val++) { var newdiff = Math.abs (num - arr[val]); if (newdiff < diff) { diff = newdiff; curr = arr[val]; } } return curr; } array = [42, 82, 122, 162, 202]; number = 33; if (closest (number, array) == 42) { var z = "Sweets";} if (closest (number, array) == 82) { var z = "Chicken";} if (closest (number, array) == 122) { var z = "Beef";} if (closest (number, array) == 162) { var z = "Pizza";} if (closest (number, array) == 202) { var z = "Apple";} alert (z);

使用對象數組而不是大量的if語句。

 function closest(num, arr) { var curr = arr[0]; var diff = Math.abs(num - curr.price); for (var val = 1; val < arr.length; val++) { var newdiff = Math.abs(num - arr[val].price); if (newdiff < diff) { diff = newdiff; curr = arr[val]; } } return curr; } array = [{ item: 'Sweets', price: 42 }, { item: 'Chicken', price: 82 }, { item: 'Beef', price: 122 }, { item: 'Pizza', price: 162 }, { item: 'Apple', price: 202 }]; number = 33; z = closest(number, array); console.log(z.item);

暫無
暫無

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

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