var array = [
{id: 1, text: "one"},
{id: 2, text: "two"},
{id: 3, text: "three"},
{id: 4, text: "four"},
{id: 5, text: "five"}
];
var name = array.find(function(item){
return item.id == $localStorage.id;
});
返回我{id:2,文本:“ two”} 预期只有两个字符串,别无其他内容
答案 0 :(得分:2)
您可以先找到对象,然后通过检查this.gridApi.setQuickFilter(this.quickFilterText);
操作是否实际上返回了一个对象还是text
来获得find()
属性。
undefined
如果您确定对象存在该localStorage值,则也可以使用解构直接从var array = [{
id: 1,
text: "one"
},
{
id: 2,
text: "two"
},
{
id: 3,
text: "three"
},
{
id: 4,
text: "four"
},
{
id: 5,
text: "five"
}
];
var findObj = array.find(function(item) {
return item.id == 2;
});
//check if findObj is defined or not
var name = findObj? findObj.text: null;
console.log(name);
获取该text
值。否则,将引发错误。
find()
答案 1 :(得分:1)
您应该检索找到的对象的属性文本:
var object = array.find(function(item){
return item.id === $localStorage.id;
});
var name = object.text;
答案 2 :(得分:1)
您所做的返回了item.id == $localStorage.id
位置的元素。如果要获取文本,则在var name
中返回元素之后,只需执行name.text
,因为array.find()
返回通过逻辑运算的元素。
答案 3 :(得分:1)
您可以使用filter和map。这样,您可以按照自己的方式自定义过滤结果。
var array = [
{id: 1, text: "one"},
{id: 2, text: "two"},
{id: 3, text: "three"},
{id: 4, text: "four"},
{id: 5, text: "five"}
];
var name = array.filter(a=> a.id === 2).map(b=> {return b.text});
console.log(name)
答案 4 :(得分:1)
如果您喜欢使用es6语法,则可以这样编写。 您所做的一切都很好,除了需要获得特定的对象值。
const array = [
{ id: 1, text: "one" },
{ id: 2, text: "two" },
{ id: 3, text: "three" },
{ id: 4, text: "four" },
{ id: 5, text: "five" }
];
// So here i use same find as you did.
let object = array.find(item => {
return item.id == $localStorage.id;
});
// And assigning text property of object to variable 'name'
// since object, can be undefined, using OR empty object,
// so no error will be thrown if so.
let { text: name } = object || {};
console.log(name);
来自https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find:
find()方法返回满足提供的测试功能的数组中第一个元素的值。否则返回undefined。
答案 5 :(得分:0)
以这种方式尝试使用text
进行查找时获取id
属性值
var array = [{
id: 1,
text: "one"
},
{
id: 2,
text: "two"
},
{
id: 3,
text: "three"
},
{
id: 4,
text: "four"
},
{
id: 5,
text: "five"
}
];
var name = array.find(function(item) {
return item.id == 2;
}).text;
console.log(name);
答案 6 :(得分:0)
find将返回满足条件的对象
var object = array.find(function(item) {
return item.id == $localStorage.id;
});
var name = object? object.text: null;
console.log(name);