从数组中访问某个对象

时间:2017-02-02 03:31:03

标签: javascript arrays object

如何从数组列表中的对象访问某些元素?

说我有一个数组:

var test = [{"a":1, "b":2, "c":3}, {"a":4, "b":5, "c":6}];

我知道test[1]会输出{"a":4, "b":5, "c":6"}test[1].b将输出5

如何在不使用for循环的情况下输出{"b":2, "c":3"}, {"b":5, "c":6"}

5 个答案:

答案 0 :(得分:1)

你可以这样做:

text.forEach(function(row){
        delete row.a;
});

它将从文本行的列表中删除“a”属性。

答案 1 :(得分:1)

过滤器是错误的工具。如果您不想修改原始数组,可以将其映射到包含已删除"a"属性的原始元素副本的新数组。

var text = [{"a":1, "b":2, "c":3}, {"a":4, "b":5, "c":6}];
var result = text.map(
    function(elt) {
        var copy = Object.assign({}, elt);
        delete copy.a;
        return copy;
    }
)

答案 2 :(得分:1)

如果你想在没有" a"的情况下返回原始数组的副本。这可能有用:

text.map((el)=> {
  delete el.a
  return el
})

答案 3 :(得分:1)

作为一项学习练习,您可以使用map创建一个包含" b"的副本的新对象数组。和" c"在输入数组元素中找到的属性。此示例在映射函数中使用destructuring asignment syntax



var array1 = [{"a":1, "b":2, "c":"3"}, {"a":4, "b":5, "c":6}];
    
var array2 = array1.map( obj => {var {b,c} = obj; return {b,c};});
    
 // check output
 console.log (JSON.stringify( array2))  //  [{"b":2,"c":"3"},{"b":5,"c":6}]




请注意,在JavaScript中复制对象或对象数组时,需要首先识别需要复制的内容以及是否可以复制对象引用。因此,如果您需要复制之外的所有属性#34; a"属性,这个答案需要修改。

答案 4 :(得分:0)

您有两个选择:使用delete operator迭代数组:

var text = [{"a":1, "b":2, "c":3}, {"a":4, "b":5, "c":6}];

text.forEach(function(obj) {
  delete obj.a;  
});

console.log(text);

或者创建除a属性之外的所有对象的副本:

var text = [{"a":1, "b":2, "c":3}, {"a":4, "b":5, "c":6}];

var newText = text.map(function(obj) {
  var newObj = {};
  for (var prop in obj) {
    if (prop !== 'a') {
      newObj[prop] = obj[prop];
    }
  }
  return newObj;
});

console.log(newText);