从不同的方式读取数组给我不同的结果

时间:2019-03-25 06:50:27

标签: javascript arrays reactjs redux

我尝试使用redux存储数据并使用全局状态的数据。问题是我不明白为什么第三个console.log()无法正常工作。

const results = this.props.popMovies

/* work */ console.log(this.props.popMovies[0].title)

                                    for (var i = 0; i < this.props.popMovies.length; i++)
/* work */ console.log(this.props.popMovies[i].title);

/* dosen't work */ console.log(...results.title)

如果有人可以向我解释原因,那么它可以帮助我。 谢谢。

3 个答案:

答案 0 :(得分:2)

因为 System.Xml.Linq.XElement xml = System.Xml.Linq.XElement.Parse("<response><point><x>12557735.513928</x><y>5500887.2196169</y><projection>EPSG::29873</projection></point></response>"); var valueX = xml.Descendants().SingleOrDefault(x => x.Name.LocalName == "x")?.Value; var valueY = xml.Descendants().SingleOrDefault(x => x.Name.LocalName == "y")?.Value; Console.WriteLine("TEST"); Console.WriteLine("Timb East" + valueX); Console.WriteLine("Timb North" + valueY); results,并且没有任何标题属性array。所以你实际上在做

title

首先,您可以使用map()排列所有标题,然后将其传递给console.log(...undefined)

console.log

这是使用演示阵列的演示。

console.log(...results.map(x => x.title))

答案 1 :(得分:1)

这是因为访问title数组的results属性要优先于...results.title上的传播算子,这基本上意味着上述代码正在尝试传播{{1} }不存在的对象/数组。

尝试以下方法:

results.title

答案 2 :(得分:0)

const result = [{title:"title1"},{title:"title2"},{title:"title3"}] console.log(...result.map(x => x.title))意味着您正在尝试传播console.log(...results.title),但是result.title作为title的属性不存在,而是存在于结果数组中的对象中

在传播标题之前,您需要先检索标题。为此,您可以对地图使用传播语法

result