首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Javascript的对象数组中查找值

在Javascript的对象数组中查找值
EN

Stack Overflow用户
提问于 2012-09-17 23:19:52
回答 19查看 1.1M关注 0票数 514

我知道以前也有人问过类似的问题,但这次有点不同。我有一个未命名对象的数组,其中包含一个已命名对象的数组,我需要获取"name“是"string 1”的对象。下面是一个数组示例。

代码语言:javascript
复制
var array = [
    { name:"string 1", value:"this", other: "that" },
    { name:"string 2", value:"this", other: "that" }
];

我应该早点说的,但是一旦我找到它,我想用一个编辑过的对象来替换它。

EN

回答 19

Stack Overflow用户

回答已采纳

发布于 2012-09-17 23:23:36

您可以遍历数组并测试该属性:

代码语言:javascript
复制
function search(nameKey, myArray){
    for (var i=0; i < myArray.length; i++) {
        if (myArray[i].name === nameKey) {
            return myArray[i];
        }
    }
}

var array = [
    { name:"string 1", value:"this", other: "that" },
    { name:"string 2", value:"this", other: "that" }
];

var resultObject = search("string 1", array);
票数 303
EN

Stack Overflow用户

发布于 2012-09-17 23:24:48

查找数组元素:

代码语言:javascript
复制
let arr = [
    { name:"string 1", value:"this", other: "that" },
    { name:"string 2", value:"this", other: "that" }
];

let obj = arr.find(o => o.name === 'string 1');

console.log(obj);

替换数组元素:

代码语言:javascript
复制
let arr = [
    { name:"string 1", value:"this", other: "that" },
    { name:"string 2", value:"this", other: "that" }
];

let obj = arr.find((o, i) => {
    if (o.name === 'string 1') {
        arr[i] = { name: 'new string', value: 'this', other: 'that' };
        return true; // stop searching
    }
});

console.log(arr);

票数 1.1K
EN

Stack Overflow用户

发布于 2016-07-21 17:34:37

ES6中,您可以像这样使用Array.prototype.find(predicate, thisArg?)

代码语言:javascript
复制
array.find(x => x.name === 'string 1')

http://exploringjs.com/es6/ch_arrays.html#_searching-for-array-elements https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/find

然后,要替换上述对象(并使用另一个很酷的ES6方法fill),您可以这样做:

代码语言:javascript
复制
let obj = array.find(x => x.name === 'string 1');
let index = array.indexOf(obj);
array.fill(obj.name='some new string', index, index++);
票数 197
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12462318

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档