从JSON数组中删除字段

时间:2019-03-11 23:55:11

标签: javascript arrays json

我有一个JSON数组:

var arr = [
{ID: "1", Title: "T1", Name: "N1"}, 
{ID: "2", Title: "T2", Name: "N2"}, 
{ID: "3", Title: "T3", Name: "N3"}
]

如何在没有循环循环的情况下从所有行中删除标题键?

结果应如下所示:

var arr = [
{ID: "1", Name: "N1"}, 
{ID: "2", Name: "N2"}, 
{ID: "3", Name: "N3"}
]

我尝试了以下操作:

delete arr.Title

但它会导致逻辑响应“ true”而不是数组。

4 个答案:

答案 0 :(得分:2)

一个替代方法是函数map,以创建具有所需输出的新数组。在处理程序内部,使用每个索引中的对象创建一个新的Object,最后删除不需要的属性名称Title

假设您要使用数组,则此方法不会使原始对象变异。

let arr = [{ID: "1", Title: "T1", Name: "N1"}, {ID: "2", Title: "T2", Name: "N2"}, {ID: "3", Title: "T3", Name: "N3"}],
    result = arr.map(o => {
      let obj = Object.assign({}, o);
      delete obj.Title;
      return obj;
    });

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

答案 1 :(得分:0)

您的变量arr不是数组。它是一个对象。
对象用花括号{}包围,例如:{ "name":"Bob", "alive":true, "dead":false }
数组被刹车[]包围,例如:["Bob","Jane","Mary]

答案 2 :(得分:0)

对于实际的JSON字符串,JSON.parse reviver parameter可用于过滤或修改值:

var json = '[{"ID":"1","Title":"T1","Name":"N1"},{"ID":"2","Title":"T2","Name":"N2"},{"ID":"3","Title":"T3","Name":"N3"}]'

var arr = JSON.parse(json, (k, v) => k != 'Title' ? v : k[-1]);

console.log( arr );

答案 3 :(得分:0)

您可以使用功能实用程序来完成该解决方案,这些实用程序可以使您轻松解决问题。

import { map, omit } from 'lodash/fp';
const newArr = map(omit('Title'), arr);