如何使用angularjs或javascript从数组获取字符串

时间:2018-10-30 08:46:38

标签: javascript angularjs

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”} 预期只有两个字符串,别无其他内容

7 个答案:

答案 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)

您可以使用filtermap。这样,您可以按照自己的方式自定义过滤结果。

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);