从 javascript 中的数组获取 return 对象特定值的更直接方法?
More direct way to return object's specific value from an array in javascript?
所以我遇到了一种情况,这让我想要一个不同的解决方案。
我有一个不可变的对象数组。
[
{
id: 0,
value:10
},
{
id: 1,
value:20
},
{
id: 2,
value:20
},
]
我需要搜索数组,找到具有我的 ID 的对象,然后 return 从该对象中找到一个值。
我最后做了什么:
// pull out the entire object from the array
const tempObject = immutableArray.toJS().find(elem => (elem.id === myId));
// set up a temp var to store the desired value
let tempValue = 0;
// make sure the object is valid
if(tempObject !-- undefined){
// finally store my value
tempValue = tempObject.value;
}
这似乎是一种浪费。存储整个对象只是为了获得单个值?
我觉得应该是这样的
const myValue = immutableArray.toJS().find(elem => (elem.id === myId).value);
或
const myValue = immutableArray.toJS().find(elem => (elem.id === myId)).value;
但显然那是行不通的。
有没有像这样更直接的方法来访问这个值而不存储整个对象?
const tempObject = immutableArray.toJS().find(elem => (elem.id === myId));
const getValue = tempObject ? tempObject.value : 0
a = [{id: 0, value:10}, {id: 1, value:20}, {id: 2, value:20}];
console.log((a.find(e => e.id == 1) || {value: 0}).value); // 20
console.log((a.find(e => e.id == 3) || {value: 0}).value); // 0
所以我遇到了一种情况,这让我想要一个不同的解决方案。
我有一个不可变的对象数组。
[
{
id: 0,
value:10
},
{
id: 1,
value:20
},
{
id: 2,
value:20
},
]
我需要搜索数组,找到具有我的 ID 的对象,然后 return 从该对象中找到一个值。
我最后做了什么:
// pull out the entire object from the array
const tempObject = immutableArray.toJS().find(elem => (elem.id === myId));
// set up a temp var to store the desired value
let tempValue = 0;
// make sure the object is valid
if(tempObject !-- undefined){
// finally store my value
tempValue = tempObject.value;
}
这似乎是一种浪费。存储整个对象只是为了获得单个值?
我觉得应该是这样的
const myValue = immutableArray.toJS().find(elem => (elem.id === myId).value);
或
const myValue = immutableArray.toJS().find(elem => (elem.id === myId)).value;
但显然那是行不通的。
有没有像这样更直接的方法来访问这个值而不存储整个对象?
const tempObject = immutableArray.toJS().find(elem => (elem.id === myId));
const getValue = tempObject ? tempObject.value : 0
a = [{id: 0, value:10}, {id: 1, value:20}, {id: 2, value:20}];
console.log((a.find(e => e.id == 1) || {value: 0}).value); // 20
console.log((a.find(e => e.id == 3) || {value: 0}).value); // 0