我是编程方面的初学者,目前遇到问题。我有一个包含4个项目的数组(您可以在下面的“代码”部分看到该数组),所有四个项目都有其特定的ID(1-4)。
我要编程的东西是一种为每个Array项目运行单独的Code的方法。我以为我可以通过在if语句中简单地检查id(在每个项目中都是单独的)来解决此问题。但是我该怎么办?
如果有人有更好的主意,他可以肯定地告诉我该ID。
最好的问候约翰。
{ id: 1, name: 'BMW', price: 250, quantity: ''},
{ id: 2, name: 'Google', price: 110, quantity: ''},
{ id: 3, name: 'Apple', price: 1000, quantity: ''},
{ id: 4, name: 'Twitter', price: 50, quantity: ''}
答案 0 :(得分:0)
答案 1 :(得分:0)
您可以使用简单的for循环简单地迭代数组,并检查id是否等于给定的id,然后返回整个对象。如果id不匹配,它将返回undefined
。考虑以下代码片段:
let array = [{ id: 1, name: 'BMW', price: 250, quantity: ''},
{ id: 2, name: 'Google', price: 110, quantity: ''},
{ id: 3, name: 'Apple', price: 1000, quantity: ''},
{ id: 4, name: 'Twitter', price: 50, quantity: ''}];
function getValue(id)
{
for( var index=0;index<array.length;index++){
if( array[index].id === id){
return array[index];
}
};
}
console.log(getValue(1));
console.log(getValue(5));
答案 2 :(得分:0)
使用filter()
浏览并比较每个项目的ID和所需的文本-请注意,然后我可以返回相关对象(例如-如果要显示名称)-或文本字符串如果它不存在。
您还可以在其中添加逻辑以确保ID唯一-即,如果为给定ID找到多个结果-那么您需要编辑重复项的ID。
let items = [
{ id: 1, name: 'BMW', price: 250, quantity: ''},
{ id: 2, name: 'Google', price: 110, quantity: ''},
{ id: 3, name: 'Apple', price: 1000, quantity: ''},
{ id: 4, name: 'Twitter', price: 50, quantity: ''}
]
function findItem(id){
var foundItem = items.filter(function(item){
return(item.id == id)
});
if(foundItem.length > 0) {
return foundItem[0];
} else {
return "Item not found";
}
}
console.log(findItem('1')); // returns the object of the BMW
console.log(findItem('6')); // returns "Item not found"
答案 3 :(得分:0)
据我了解,您想为数组中的不同项目运行单独的代码段。如果数组的元素是固定的,即它们不变,那么您可以为每个项目编写不同的代码作为函数,并将其作为属性添加到相应的项目中。
请参见以下示例:
let BMWFunction = function(){
console.log('BMW!');
}
let googleFunction = function(){
console.log('Google!');
}
let myArray = [
{ id: 1, name: 'BMW', price: 250, quantity: '', code: BMWFunction},
{ id: 2, name: 'Google', price: 110, quantity: '', code: googleFunction }
]
for (let i = 0; i < myArray.length; i++){
myArray[i].code();
}
然后,对于在数组中循环通过的每个项目,都可以调用关联的代码属性。