gpt4 book ai didi

javascript - 这两个javascript对象有什么区别

转载 作者:行者123 更新时间:2023-12-02 14:13:10 25 4
gpt4 key购买 nike

我正在尝试从以下对象获取值。 for 循环在其中一个对象中有效,但在另一个 javascript 对象中无效。我想知道有什么区别以及如何让它在其他对象中工作?

对象 1:

var objects = [
{
"foo" : "bar",
"bar" : "sit"
},
{
"foo" : "lorem",
"bar" : "ipsum"
}
];

对象2:

{
"4dd5a49e366": {
"name" : "bar",
"bar" : "sit",
"date": "2016-08-03T04:48:04.283Z"
},
"519c5056af2": {
"name" : "lorem",
"bar" : "ipsum",
"date": "2016-09-03T04:48:04.283Z"
}
}

我想搜索名称属性与某些 search_term 匹配的项目。并退回元素。

这是正在使用的循环搜索。

function searchFor(toSearch) {
var results = [];
toSearch = trimString(toSearch); // trim it
for(var i=0; i<objects.length; i++) {
for(var i in objects[i]) {
if(objects[i][key].indexOf(toSearch)!=-1) {
if(!itemExists(results, objects[i])) results.push(objects[i]);
}
}
}
return results;
}
console.log(searchFor('o'));

这适用于第一个对象,但不适用于第二个对象。我怎样才能让它第二次工作?

最佳答案

第一个变量是对象数组。由于它是一个数组,因此您可以在其上使用所有数组方法。

第二个是一个带有键 4dd5a49e366519c5056af2 的对象,它们又是对象并且具有很少的属性。

您不能在第二个对象上使用数组方法

how can I get it to work in the other object?

希望这个片段有用

var myObject = {
"4dd5a49e366": {
"name": "bar",
"bar": "sit",
"date": "2016-08-03T04:48:04.283Z"
},
"519c5056af2": {
"name": "lorem",
"bar": "ipsum",
"date": "2016-09-03T04:48:04.283Z"
}
}
// a function to accept the name value
function findByName(name) {
var thisObject = "";
for (var keys in myObject) { // looping over objects
var getThisObject = myObject[keys];
if (getThisObject.name === name) { // Checking if name matches
thisObject = myObject[keys]; // assigning the object to a variable
}
}
return thisObject // return that variable
}
var getMyObject = findByName('bar');
console.log(getMyObject)

JSFIDDLE

编辑

if I enter just findByName('b'); it should return results that the full name

您需要使用indexOf来查找该名称值是否包含特定字符。

使用数组存储名称值包含此特定字符的所有相关对象。从函数返回该数组。

function findByName(name) {
var thisObject = [];
for (var keys in myObject) {
var getThisObject = myObject[keys];
if (getThisObject.name.indexOf(name)!==-1) {
thisObject.push(myObject[keys]);
}
}
return thisObject
}
var getMyObject = findByName('b');

JSFIDDLE 2

关于javascript - 这两个javascript对象有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39313438/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com