精华内容
下载资源
问答
  • 对象属性值返回数组
    千次阅读
    2021-07-12 09:27:14

    刚才在使用vue组件的Table表格时,遇到了后端返回的数组,数组包含对象,对象中包含一个为null的对象属性值,然后呈现在网页上就会发现那一列是空白的,显得不好看,然后我想的是把那一列只要是null的全部改为零,这样至少显得好看一点儿。

    首先我是想着直接在prop属性上动态绑定,然后使用三元运算符进行判断。就像下面这样

    <el-table-column :prop="`${leaveearly==null?0:leaveearly}`" label="xxxx" align="center"></el-table-column>
    

    但不知为何,这种方法就是没有达到我想要的结果,然后这种做法果断放弃(如果哪位知道原因的话,麻烦教我一下)。

    既然在Table表格元素上不能下功夫,那就想办法直接在返回的原始数据上进行修改。

    其实就是在数组中的对象再对对象中的属性值进行修改。 

    注意紧接着这个是错误写法。If里边的判断条件这样写是错误的,我以为它的返回值null的话会执行if里边的语句。但是我是想当然了,不应该这样理解。

     for (let index = 0; index < this.tableData.length; index++) {
                 
                if (this.tableData[index].leaveearly) {
                    this.tableData[index].leaveearly="0"              
                }
                 
              }

    然后我就把判断条件写成了这样。

     for (let index = 0; index < this.tableData.length; index++) {
                 
                if (this.tableData[index].leaveearly==null) {
                    this.tableData[index].leaveearly="0"              
                }
                 
              }

    其实就是在原来基础上把等于null加上去了。然后就成功达成目的。

    写这篇博客,一是为了和大家分享,二其实也为了自己能够增强记忆,避免以后再犯同样的错误。

    这只是我单独的一种解法。我想应该方法还有很多,请各位各抒己见。

    更多相关内容
  • 主要介绍了JS实现查找数组对象属性值是否存在,涉及javascript针对json数组的遍历、查找相关操作技巧,需要的朋友可以参考下
  • * @param {*} key 对象单个属性 * @returns 数组 */ export const toArray = (arr, key) => { let weNeedArr = []; for (let index = 0; index < arr.length; index++) { const element = arr[i

    凡是常用到的方法,我喜欢封装公用函数调取

    /**
     * 处理res数据
     * @param {*} arr 对象数组
     * @param {*} key 对象单个属性
     * @returns 数组
     */
    export const toArray = (arr, key) => {
        let weNeedArr = [];
        for (let index = 0; index < arr.length; index++) {
            const element = arr[index];
            weNeedArr.push(element[key]);
        }
        return weNeedArr;
    }
    

    Vue页面引入使用

    import {toArray} from "@/util/tool";//公共函数引入
    

    在这里插入图片描述

    res.data.data为从后台获取的对象数组, 分别获取对象数组属性“maxRate”、“minRate”、“pdate”的值,返回新的数组line1、line2、timepoint
    展开全文
  • 对象数组中提取属性值作为数组

    千次阅读 2020-04-07 17:04:35
    I have JavaScript object array with the following structure: 我有以下结构的JavaScript对象数组: objArray = [ {

    本文翻译自:From an array of objects, extract value of a property as array

    I have JavaScript object array with the following structure: 我有以下结构的JavaScript对象数组:

    objArray = [ { foo: 1, bar: 2}, { foo: 3, bar: 4}, { foo: 5, bar: 6} ];
    

    I want to extract a field from each object, and get an array containing the values, for example field foo would give array [ 1, 3, 5 ] . 我想从每个对象中提取一个字段,并获取一个包含值的数组,例如foo字段将给出array [ 1, 3, 5 ]

    I can do this with this trivial approach: 我可以用这种简单的方法做到这一点:

    function getFields(input, field) {
        var output = [];
        for (var i=0; i < input.length ; ++i)
            output.push(input[i][field]);
        return output;
    }
    
    var result = getFields(objArray, "foo"); // returns [ 1, 3, 5 ]
    

    Is there a more elegant or idiomatic way to do this, so that a custom utility function would be unnecessary? 是否有更优雅或惯用的方式来执行此操作,从而不需要自定义实用程序功能?


    Note about suggested duplicate , it covers how to convert a single object to an array. 关于建议的重复项的注释,它涵盖了如何将单个对象转换为数组。


    #1楼

    参考:https://stackoom.com/question/1KCTh/从对象数组中提取属性值作为数组


    #2楼

    Yes, but it relies on an ES5 feature of JavaScript. 是的,但是它依靠JavaScript的ES5功能。 This means it will not work in IE8 or older. 这意味着它将无法在IE8或更低版本中使用。

    var result = objArray.map(function(a) {return a.foo;});
    

    On ES6 compatible JS interpreters you can use an arrow function for brevity: 在与ES6兼容的JS解释器上,为了简洁起见,您可以使用箭头功能

    var result = objArray.map(a => a.foo);
    

    Array.prototype.map documentation Array.prototype.map文档


    #3楼

    Using Array.prototype.map : 使用Array.prototype.map

    function getFields(input, field) {
        return input.map(function(o) {
            return o[field];
        });
    }
    

    See the above link for a shim for pre-ES5 browsers. 有关ES5之前版本浏览器的填充程序,请参见上面的链接。


    #4楼

    It depends of your definition of "better". 这取决于您对“更好”的定义。

    The other answers point out the use of map, which is natural (especially for guys used to functional style) and concise. 其他答案指出地图的使用是自然的(特别是对于习惯使用功能样式的人)并且简洁。 I strongly recommend using it (if you don't bother with the few IE8- IT guys). 我强烈建议使用它(如果您不打扰那些IE8-IT专家的话)。 So if "better" means "more concise", "maintainable", "understandable" then yes, it's way better. 因此,如果“更好”的意思是“更简洁”,“可维护”,“可理解”,那么它会更好。

    In the other hand, this beauty don't come without additional costs. 另一方面,这种美丽并非没有额外费用。 I'm not a big fan of microbench, but I've put up a small test here . 我不是microbench的忠实拥护者,但是我在这里做了一个小测试 The result are predictable, the old ugly way seems to be faster than the map function. 结果是可以预测的,旧的丑陋方法似乎比map函数要快。 So if "better" means "faster", then no, stay with the old school fashion. 因此,如果“更好”的意思是“更快”,那么不,保留传统的流行。

    Again this is just a microbench and in no way advocating against the use of map , it's just my two cents :). 同样,这只是一个微平台,绝不主张使用map ,这只是我的两分钱:)。


    #5楼

    Check out Lodash's _.pluck() function or Underscore's _.pluck() function. 查看Lodash的_.pluck()函数或_.pluck()_.pluck()函数。 Both do exactly what you want in a single function call! 两者都完全可以在单个函数调用中完成您想要的!

    var result = _.pluck(objArray, 'foo');
    

    Update: _.pluck() has been removed as of Lodash v4.0.0 , in favour of _.map() in combination with something similar to Niet's answer . 更新: _.pluck()从Lodash v4.0.0起已被删除 ,转而使用_.map()并结合了类似于Niet的答案 _.pluck() is still available in Underscore . _.pluck()_.pluck()中仍然可用

    Update 2: As Mark points out in the comments , somewhere between Lodash v4 and 4.3, a new function has been added that provides this functionality again. 更新2:正如Mark 在注释中指出的那样,在Lodash v4和4.3之间的某个地方,添加了一个新功能,再次提供了此功能。 _.property() is a shorthand function that returns a function for getting the value of a property in an object. _.property()是一种简写函数,它返回用于获取对象中属性值的函数。

    Additionally, _.map() now allows a string to be passed in as the second parameter, which is passed into _.property() . 此外, _.map()现在允许将字符串作为第二个参数传递进来,该字符串被传递到_.property() As a result, the following two lines are equivalent to the code sample above from pre-Lodash 4. 结果,以下两行等效于Lodash 4之前的上述代码示例。

    var result = _.map(objArray, 'foo');
    var result = _.map(objArray, _.property('foo'));
    

    _.property() , and hence _.map() , also allow you to provide a dot-separated string or array in order to access sub-properties: _.property()以及_.map() ,还允许您提供一个以点分隔的字符串或数组,以便访问子属性:

    var objArray = [
        {
            someProperty: { aNumber: 5 }
        },
        {
            someProperty: { aNumber: 2 }
        },
        {
            someProperty: { aNumber: 9 }
        }
    ];
    var result = _.map(objArray, _.property('someProperty.aNumber'));
    var result = _.map(objArray, _.property(['someProperty', 'aNumber']));
    

    Both _.map() calls in the above example will return [5, 2, 9] . 上例中的两个_.map()调用都将返回[5, 2, 9] _.map() [5, 2, 9]

    If you're a little more into functional programming, take a look at Ramda's R.pluck() function, which would look something like this: 如果您更喜欢函数式编程,请看一下R.pluck() R.pluck()函数,它看起来像这样:

    var result = R.pluck('foo')(objArray);  // or just R.pluck('foo', objArray)
    

    #6楼

    Function map is a good choice when dealing with object arrays. 处理对象数组时,函数映射是一个不错的选择。 Although there have been a number of good answers posted already, the example of using map with combination with filter might be helpful. 尽管已经发布了许多好的答案,但结合使用带有过滤器的地图的示例可能会有所帮助。

    In case you want to exclude the properties which values are undefined or exclude just a specific property, you could do the following: 如果要排除未定义值的属性或仅排除特定属性,可以执行以下操作:

        var obj = {value1: "val1", value2: "val2", Ndb_No: "testing", myVal: undefined};
        var keysFiltered = Object.keys(obj).filter(function(item){return !(item == "Ndb_No" || obj[item] == undefined)});
        var valuesFiltered = keysFiltered.map(function(item) {return obj[item]});
    

    https://jsfiddle.net/ohea7mgk/ https://jsfiddle.net/ohea7mgk/

    展开全文
  • 对象数组根据属性值获取对象

    千次阅读 2020-08-27 16:03:40
    本文目的是对一个对象数组进行条件筛选,使用filter方法。 const data = [ { name: 'Danny', age: 12, like: 'baskball', }, { name: 'Jenny', age: 10, like: 'toy', }, ] const test = data....

    本文目的是对一个对象数组进行条件筛选,使用filter方法。 

     const data = [
          {
            name: 'Danny',
            age: 12,
            like: 'baskball',
          },
          {
            name: 'Jenny',
            age: 10,
            like: 'toy',
          },
        ]
    
      const test = data.filter(item => item.name === 'Danny');
      console.log('test :>> ', test);

    获得一个新的数组:

     

     

    展开全文
  • 本文实例讲述了js获取对象,数组所有属性键值(key)和对应(value)的方法。分享给大家供大家参考,具体如下: [removed] var values=function(object) { var values = []; for (var property in object) values....
  • const statusList = [ { value: 'UN_PUBLISH', label: '未发布' }, { value: 'PUBISH', label: '已发布' }, { ...
  • 这里通过请求接口,原本返回的list数组对象有很多属性 通过map()遍历数组返回数组 listSerItem(this.postItemForm).then((response) => { this.serviceItemOptions = response.data.list.map((item) =&
  • 例如下面一个数组,一个数组里包含多个对象,想取多个对象的单独几个属性,例如我只想要下列对象里的date和name,address不需要 tableData: [{ date: '2016-05-02', name: '王小虎', address: '上海市普陀区...
  • vvar ary=[ {"RaDate":'2021-09-08',"Type":'Morning2','title':'测试2'}, {"RaDate":'2021-10-08',"Type":'Morning2','title':'测试1'}, {"RaDate":'2021-09-08',"Type":'Morning2','title':'测试2'}, ...
  • 根据对象的某个属性值,删除对象数组中的对应的对象 问题:elem参数获取了当前的对象,根据elem中某个属性值来匹配self.checkedList这个对象数组,并删除匹配到的对象。 解决方法:如图 注:find()方法返回数组中符合...
  • Object.keys(‘检测对象’) var obj = {“a”:1,”b”:2}; Console.log(Object.keys(obj)) //[ ‘a’, ‘b’ ]
  • js 根据条件查找数组对象属性值

    千次阅读 2020-11-27 16:41:22
    如题 想要查找数组对象的某个属性是否相同 data() { return { iosDicData:[ { label1: '6001', value1: 600, productId: "C1" }, { label1: '12001', value1: 1200, p
  • 递归数组对象里的属性 返回一个新数组
  • var result = detailList.map(function(item) { return item.Id; });
  • 数据源: tripData=[{"ID":1,"票号":"104-0000000001","订单编号":"1326011"}, {"ID":2,"票号":"104-0000000002","订单编号":"1326012"}, {"ID":3,"票号":"104-0000000003","订单编号":"1326013"}] ...
  • 返回给定对象中所有数组。 安装 使用安装 $ npm i get-values --save 用安装 $ bower install get-values --save 用法 var values = require ( 'get-values' ) ; values ( { a : 'aaa' , b : 'bbb' , c : '...
  • 有一个数组,里面装的都是对象.var array=[{"id": 52354541,"name": "比率","value": "55"},{"id": 43563123,"name": "比率","value": "88"},{"id": 32525763,"name": "比率","value": "76"}];如果是查找最大 可以...
  • javaScript 获取对象数组对象里面想要的属性返回一个新的数组 // obj 数组 或者 对象 // arr 要获取对象数组对象的key数组 // addProperty 可以往对象数组的每一个对象添加一个新的属性 reducedFilter...
  • 对象类型包括:对象即是属性的集合,当然这里又两个特殊的对象—-函数(js中的一等对象)、数组(键值的有序集合)。 数组元素的添加 arrayObj.push([item1 [item2 [. . . [itemN ]]]]); 将一个或多个新元素添加到...
  • 需求:将下面数组-对象中的index_name相同的对象抽离出来,放入一个新数组中 let tempArr = [ { domain: 'a', index_name: '云淡风轻' }, { domain: 'b', index_name: '递归' }, { domain: 'c', index_name: '...
  • 利用find修改对象属性值 1,声明一个对象 var u = [ { name: 'andy', age: 18 } , { name: 'bob', age: 19 } ] 2,获得一个属性名并重新赋值 var p = u.find(functi...
  • 遍历一个对象数组返回一个包含相匹配的属性-对的所有对象数组
  • 判断数组对象中是否有某个属性值

    千次阅读 2020-05-25 13:58:38
    var user = [ { id: 1, name: "李四" ...判断以上数组是否含有 name为“李五”的数据 // 如果有就返回 function findElem(arrayToSearch, attr, val) { for (var i = 0; i < arrayToSearch.le.
  • 当实参不确定时,在数组中筛选出包含实参的对象,并以数组的形式返回
  • JS 对象数组中匹配某个属性值

    千次阅读 2020-06-19 18:02:50
    如果有一个js对象数组,一个变量如下 ...我想要查询变量b,是否在数组a的id中,如果在,返回true;不在,返回false 写法如下 if (a.find(item => {return item.id == b}) != undefined) { return true; } .
  • var arr = [ { name: 张三, sum: 2 }, { name: 张三, sum: 7 }, { name: 李四, sum: 4 }, { name: 李四, sum: 5 }, { name: 李四, sum: 6 }, { name: 王五, sum: 4 }, ] 判断 name 是否相同 相同 sum 就...
  • JavaScript 根据对象某个属性获得其在数组中的索引 let arr = [{"name": "aaa", "id": 1}, {"name": "abc", "id": 2}]; let index = arr.findIndex(item => item.name === "abc"); console.log(index);//1
  • 对象数组 、forEach、map、解构赋值
  • 请求接口返回数据两种常见数组对象[object Object]单个属性值得获取 No.1 第一种是用JSON转换得到的是 {“属性”:“属性值”},我用的取值方法如下: 最终取到的结果:![在这里插 No.2 第二种是用JSON转换得到...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 600,882
精华内容 240,352
热门标签
关键字:

对象属性值返回数组